学通python
(一. 涉及知识点)
- python基础(认识python,环境,pycharm,注释,变量,变量类型,输入输出,运算发)
- 流程控制结构(判断语句,循环)
- 数据序列(字符串,列表,元组,字典)
- 函数(函数基础,变量进阶,函数进阶,匿名函数)
- 面向对象(面向对象编程介绍,类和对象,基础语法,封装继承多态,类属性和类方法)
- 异常,模块(异常,模块和包,文件操作[读写文件,读写测试数据,自动化生成测试报告])
- UnitTest框架【单元测试的框架,也可用于管理测试用例】(UnitTest基本使用,Unitest断言,参数化,生成html测试报告)
(二. 获得的能力)
-  搭建python环境。 
-  掌握python基本语法。 
-  建立编程思维,具备基础的编程能力。 
-  建立编程思维以及面向对象程序设计思想。 
-  掌握如何通过UnitTest编写测试脚本,并生成HTML测试报告。 
(三. 各种自动化测试框架)
python + selenium web(ui)自动化,功能测试转化为代码
python + appium 移动端(手机的APP)自动化
python + requests 接口自动化测试
(四. 内容python基础了解)
-  python应用领域(1989年写1991年发布,荷兰 吉多.范罗苏姆) -  运维 
-  web全栈 
-  测试人员 
-  应用领域 - 自动化测试
- 网络爬虫
- web开发(写网站)
- 自动化运维(维护优化网站)
- 数据分析
- 人工智能
- 机器学习
 
 
-  
-  运行原理(直接在cmd中运行,命令: python 代码文件名)
-  pytho解释器 
-  pycharm安装 
-  pycharm中编写python代码并运行 
-  注释 -  单行 # 
-  多行 “”“xxxx"“”,‘’‘xxxx’‘’ 
-  pygthon中的三种波浪线和PEP8 - 红色:代码错误,必须处理,才能运行。
- 灰色:PEP8的python书写规范提示。
- 绿色:不影响正常执行,认为内容不是一个单词。
 
 
-  
-  变量 - 作用:用来存储数据
- 定义变量:变量名=变量值,name = “张三”
 # 变量 name = "张三" print('name:', name) age = 17 height = 189.0 # 小数默认显示6位 print('名字是%s , 年龄是%d , 身高是%.2f cm' % (name, age, height))
-  数据类型(查看数据类型: type())-  数字类型 -  整型 int
-  浮点型 float
-  布尔型 bool
 
-  
-  非数字类型 -  字符串 str如,str1 = “name”
-  列表 list可变,移除,添加如,li1 = [1,2,3,4,5]
-  元组 tuple不可变,count(快,高效 )如,tu1 = (1,2,3,4)
-  字典 dict如,di1 = {‘name’:'二哈’,‘age’:‘17’}# 列表 li1 = [1, 2, 3, 4, 5] # 字符串 str1 = "name" # 元组,不可变,可以作为字典中的值参数 tu1 = ('name', age, 'title', 4) dict1 = {tu1: {'二哈', 15, '海洋', 5}, 'age': age} print(dict1)
 
-  
 
-  
-  运算符 
(四,python基础理论一)
-  字符串格式化补充 -  zhioo 
-  l 
-  字符串.format() str2 = '明天会更好' # 字符串格式化,在需要使用变量的地方使用大括号 print('我的{}的'.format(str2)) print('{}明天会更好{}'.format('我的', '的'))
 
-  
-  运算符 - 算数 - 幂运算**
- /求商(结果是小数) * // %求余
- — + * /。
 
- 比较 - < > = != >= <=
 
- 逻辑 - and
- or
- not
 
- 赋值运算符 - =
- 复合赋值运算
 
 
- 算数 
-  判断语句( ifelseifelse)# if判断语句 a = 10 if a > 0:print("a大于0")# if-else判断语句 if a > 0:print('a大于0') else:print('a小于等于0')# if-elif-else适用于判断并列多个的情况 if a > 0:print('a大于0') elif a != 0:print('a不等于0') else:print('a小于0')# if嵌套 # debug流程
-  循环语句的基础 while# while 判断条件: while 判断条件:需要重复执行的代码修改计数器# 需要重复执行的代码,break终止循环 while true:需要重复执行的代码if xxx:break;
-  案例:猜拳游戏 ''' 猜拳游戏: 剪刀 赢 布 石头 赢 剪刀 布 赢 石头 步骤: 1.自己出拳: 石头(1)/剪刀(2)/布(3) input(player) 2.电脑随机出拳:(使用随机数工具) (computer) 3.判断输赢:玩家胜利 player == 1 and computer == 2 or player == 2 and computer == 3 or player == 3 and computer == 1平局 player == computer玩家失败 else ''' import randomplayer = int(input('请出拳头:石头(1)/剪刀(2)/布(3):')) computer = random.randint(1, 3)if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):print("玩家胜利") elif (player == computer):print("平局") else:print("请不要气馁!再来一局")''' 求1到100的和: 1+2+3+4+5+6+。。。。+100 1.定义变量 保存求和的结果 2.定义循环,获取1到100的数字并求和 3.打印求和的结果 ''' num = 0 # 定义初始条件 i = 1 # 书写循环的条件 while i <= 100:num += i # 每一次i的值会变化i += 1 print(num)''' 求1到100的偶数和 1.找到所有偶数 2. 相加 ''' num = 0 i = 2 while i <= 100:num += i;i += 2 print(num)
(五,python基础理论二)
-  可变数据类型和不可变数据类型 int float bool str list:可变 tuple dict:可变 set:输出时去除重复,可变 basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
-  类和对象 ''' 小猫爱吃鱼案例 需求:小猫要吃鱼,小猫要喝水,定义不带属性的类 类名:猫类,cat 属性:暂无 方法:吃鱼(eat),喝水(drink)''' # 1. 定义类 class Cat:def eat(self):# self 会自动出现print('小猫爱吃鱼...')def drink(self):print('小猫要喝水...') # 2. 创建对象 blue_cat = Cat()# 3. 通过对象调用类中的方法 blue_cat.eat() blue_cat.drink() # 创建第二哥对象 black_cat = Cat() black_cat.eat() black_cat.drink()- self说明:从函数的语法上键self是形参,就可以是任意变量名,只不过,习惯性的将形参写作self。
- self是普通的形参,但是在调用的时候没有传递实参值,原因是python解释器在执行代码时自动将调用这个方法的对象传递给self,即self的本质时对象。
- 只需要确定通过哪个对象调用,对象的应用和self的应用是一样的
 
python文件操作
-  文件操作步骤(文本文件,二进制文件) - 打开文件
- 读写文件
- 关闭文件
 
-  open函数(打开文件) open(file,mode='r',encoding=None) # with open打开文件 with open(file,mode,encoding='utf-8') as 变量:读取或写入文件
-  wite()函数(写文件) 文件对象.write('写入文件的内容')
-  read()读文件 # 打开文件 f = open('a.txt','r',encoding='utf-8') # 读文件 buf = f.read() buf2 = f.readline() # 关闭文件 f.close()
-  示例 json格式,示例数据 [{"name": "小明","age": 18,"isMen": true,"like": ["听歌","游戏","购物","恋爱","睡觉"],"address": {"county": "中国","city": "北京"}},{"name": "小红","age": 17,"isMen": true,"like": ["听歌","学习","购物","恋爱","打豆豆","睡觉"],"address": {"county": "中国","city": "北京"}} ]python读取上述json格式数据 ''' 读取json格式数据 ''' import json with open('info.json', encoding='utf-8') as f:info_list = json.load(f)for info in info_list:print(info.get('name'),info.get('age'),info.get('address').get('city'));列表中套元组示例 # 抓取的json格式数据 [{"desc": "正确的用户名密码","username": "example_username","password": "example_password","expect": "登录成功"},{"desc": "正确的用户名密码","username": "example_username","password": "example_password","expect": "登录成功"},{"desc": "正确的用户名密码","username": "example_username","password": "example_password","expect": "登录成功"} ]# 代码实现读取 import json with open('info2.json',encoding = 'utf-8') as f:data = json.load(f)print(data)new_list = []for i in data:# print((i.get('username'), i.get('password'), i.get('expect')))new_list.append((i.get('username'), i.get('password'), i.get('expect')))print(new_list)# 结果展示 [('example_username', 'example_password', '登录成功'), ('example_username', 'example_password', '登录成功'), ('example_username', 'example_password', '登录成功')]