python自动化day1
一、变量
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
推荐方式#下划线 age_of_oldboy = 56 number_of_students = 80
id 位置==>内存
type ====>类型
value ==>值
二、程序交互 input
#!/usr/bin/env python # -*- coding: utf-8 -*- # 将用户输入的内容赋值给 name 变量 name = input("请输入用户名:") # 打印输入的内容 print(name)
三、数据类型
int ====> 整型数字
a = 10
str ====> 字符串类型
只要是引号里的,都是字符串类型
name = "zbb" print(name)
字符串分割
>>> msg = 'zbb|zxx' >>> msg.split('|') ['zbb', 'zxx'] >>>
列表
可以存放多个值,每个值都可以是任意类型
d =['a','12','c'] print (d) ['a', '12', 'c']
字典
采用key:velue的方式储存值,可以存放多个值
每个value可以是任意数据类型
但key必须是不可变数据类型
dic = {'name':'zbb','age':'12'} dic['name'] 'zbb' dic['name'] = 'zb' dic {'name': 'zb', 'age': '12'}
可变类型(不可hash类型)
字典与列表属于可变类型
id 不变 ===== type不变========值变了
不可变数据类型
数字和字符串属于不可变类型
四、布尔类型
布尔类型很简单,就两个值 ,一个True(真),一个False(假)
>>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True
五、格式化输出
%s就是代表字符串占位符(也可以接受数字),除此之外,还有%d,是数字占位符
%%
第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。
msg=''' ------------ info of %s ----------- Name : %s Age : %s job : %s Hobbie: %s ------------- end ----------------- ''' %('zbb','zbb','18','运维','玩') print(msg )
------------ info of zbb ----------- Name : zbb Age : 18 job : 运维 Hobbie: 玩 ------------- end -----------------
改变字符串类型
age = input('your age :') x = int(age) print(x,type(x))
#简化 x = int(input('your age :')) print(x,type(x))
六、运算符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算
算数运算
以下假设变量:a=10,b=20
比较运算
以下假设变量:a=10,b=20
赋值运算
以下假设变量:a=10,b=20
逻辑运算
针对逻辑运算的进一步研究:
1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
七、流程控制之if...else
假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。
if...else 语句
单分支
if 条件: 满足条件后要执行的代码
双分支
if 条件: 满足条件执行代码 else: if条件不满足就走这段
age = 10 if age > 40: print('lnb ') else: print("xnb")
多分支+判断
age = 50 age_inp = int(input('请输入我的年龄')) if age_inp > age: print('too big') elif age_inp < age: print('too small') else: print('you get it ')
八、流程控制之while循环
count = 0 while count <= 100: if count >3 and count <= 96: count +=1 continue# break #跳出本层循环 continue 退出本次循环 print(count) count+=1
while与if配合玩游戏三次机会
age = 50 count = 1 while count <=3: age_inp = int(input('请输入我的年龄')) if age_inp > age: print('too big') count+=1 elif age_inp < age: print('too small') count+=1 else: print('you get it ') break
写一个输入q 退出的程序
while True: cmd = input('>>: ') if cmd == 'q': break
请输入用户名+密码,错误 超过三次退出
count = while True: : print("输入次数过多!") break user=input('user: ') password=input('password: ') ": print( '输入正确!') break else: print('输入错误!') count+=
请输入用户名+密码,错误 超过三次退出 。成功之后,执行命令,按q退出
count =0 while True: if count >2: print("输入次数过多!") break user=input('user: ') password=input('password: ') ": print( '输入正确!') while True: cmd = input('>>: ') if cmd == 'q': break print('exec %s' %cmd) else: print('输入错误!') count+=1
优化 上面代码
count =0 tag = True while tag: if count >2: print("输入次数过多!") break user=input('user: ') password=input('password: ') ": print( '输入正确!') while tag: cmd = input('>>: ') if cmd == 'q': tag = False continue print('exec %s' %cmd) else: print('输入错误!') count+=1
while与else连用
count = 1 while count <=5: #if count ==2: #break print(count) count+=1 else: #while没有被break打断的时候可以执行else的子代码 print('========>>>')
作业
count =1 age = 50 while True: if count > 3: jx = input('是否要继续?') if jx == 'y': count = 1 continue elif jx == 'n': break age = int(input('请输入我的年龄')) if age == 50: print('猜对了') break else: print('猜错了') count+=1
基础需求:
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
升级需求:
- 可以支持多个用户登录 (提示,通过列表存多个账户信息)
- 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
python自动化day1的更多相关文章
- Day1 老男孩python自动化运维课程学习笔记
2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- python自动化运维之路~DAY5
python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...
- flow.ci + Github + Slack 一步步搭建 Python 自动化持续集成
理想的程序员必须懒惰,永远追随自动化法则.Automating shapes smarter future. 在一个 Python 项目的开发过程中可能会做的事情:编译.手动或自动化测试.部署环境配置 ...
- Selenium2+python自动化23-富文本(自动发帖)
前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了 ...
- Selenium2+python自动化24-js处理富文本(带iframe)
前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...
- Selenium2+python自动化7-xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- Selenium2+python自动化13-Alert
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...
- 【python自动化第十一篇】
[python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...
随机推荐
- 使用GSON来生成JSON数据
第二种方法: 当不需要显示某个属性时,在不需要显示出的属性前加transient关键字即可满足 使用gson来解析 使用gson解析 带日期转换 集合类解析:gson中的数组与java中集合类都是对应 ...
- 第2章 构建springboot工程 2-1 构建SpringBoot第一个demo
以后的趋势肯定是以一个微服务为主导的, Spring-Boot的指导 Maven整个环境构建之前的整个项目其实是一个很普通的J2SE项目,它构建完之后会进行重构,重构为Maven的一个项目路径.可以看 ...
- [转]PHP 面试问哪些问题可以比较准确的反映出应聘者的开发水平?
基础题 场景: 你入职了一家新公司. 上班第一天,接待人给你安排好了座位,然后拉过来一台没拆封的新电脑. 你把电脑连接好之后,按下电源.... 好吧,这真是一台新电脑,里边竟然内置了个DOS系统!! ...
- yii2常用excel操作库
yii2使用较多的excel操作库 1."phpoffice/phpexcel" https://github.com/PHPOffice/PHPExcel/archive/1.8 ...
- ZROI2018提高day4t1
传送门 分析 一道贪心题,我们用两个优先队列分别维护卖出的物品的价格和买入但没有卖出的物品的价格,然后逐一考虑每一个物品.对于每一个物品如果他比卖出的物品中的最低个价格,则改将现在考虑的物品卖出,将之 ...
- 机器学习初探(手写数字识别)matlab读取数据集
手写数字识别是机器学习里面的一个经典问题,今天就这一段时间学习的机器学习,花一个下午茶的时间,试试机器学习. 首先数据库是在MNIST(http://yann.lecun.com/exdb/mnist ...
- 浅谈android代码保护技术_ 加固
浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...
- Batch Normalization 与Dropout 的冲突
BN或Dropout单独使用能加速训练速度并且避免过拟合 但是倘若一起使用,会产生负面效果. BN在某些情况下会削弱Dropout的效果 对此,BN与Dropout最好不要一起用,若一定要一起用,有2 ...
- Android proguard代码混淆
为什么要代码混淆? Android的安装文件是apk格式.APK是AndroidPackage的缩写.是由android sdk编译的工程打包生成的安装程序文件. Apk其实是zip文件,但是后缀名被 ...
- String的split(String regex, int limit)方法小结
split(String regex, int limit)方法,头一个参数String regex表示字符串分割的模式,包括分隔符和正则表达式:但是第二个参数limit比较迷糊人,api中这样解释: ...