Python接口自动化测试框架:回顾Python3基础语法知识总览

简介: 本文是Python 3基础语法知识的全面总结,涵盖了标识符、数据类型、运算符、控制流程、函数、模块和文件操作、异常处理以及面向对象编程的各个方面,旨在为编写Python接口自动化测试框架提供必要的语法知识支持。

Python3基础语法

  • 先说标识符
  • 凡是在开发中自己取的名字,都是标识符;
例如:变量名、函数名、类名、模块名等
  • 命名规范
标识符由字母、数字、下划线组成,但不能以数字开头;
不能用python的关键字来命名标识符。
驼峰式命名:在定义类中使用大驼峰(每个单词首字母大写),
小驼峰或者使用下划线连接单词:常用于变量名或者方法(函数名)

一、数据类型

1、int : 整数
2、float:浮点数
3、bool:布尔类型
  • 只有True和False两个值
4、str : 字符串
  • 1、字符串的表示: 单引号、双引号、三引号
  • 2、字符串的下标取值和切片操作
  • 3、字符串转义
  • \t 、 \n 、 r
  • 4、字符串拼接
  • ‘’.join([a1,s2,s3]),
  • +加号支持拼接
  • 5、字符型格式化输出
  • format方法:{0}支持下标指定输出,{:.2f}保留两位小数{:.2%}两位小数的百分数
  • 传统方式%: %s字符串(接收任意类型),%d整型,%f浮点型
  • F这种形式很少用:F"{variable_name}"
  • 6、字符串的常用方法:
  • format:格式化输出
  • join:拼接参数为一个可迭代对象
  • find:查找元素下标位置
  • count:统计元素的个数
  • replace:替换字符
  • split:拆分成一个list类型的数据
  • upper:大写
  • lower:小写
5、list: 列表
  • 1、列表的表示方式(定义):中括号
  • 2、列表的下标取值和切片操作
  • 3、列表常用的方法
  • 增:append(末尾追加元素)、insert(指定索引位置插入元素)、extend(一次性追加多个元素,即list类型)
  • 删:pop(删除指定索引的元素)、remove(移除某个元素)、clear(清空列表)
  • 查:index(根据索引取值)、count(统计元素个数)
  • 改:通过下标修改值,li1[index]
  • 其他:copy、reverse、sort
6、tuple : 元组
  • 1、元组的表示方式(定义):小括号
  • 2、元组的下标取值和切片操作
  • 3、元组的方法:
  • count:统计元素个数
  • index:索引取值
7、dict:字典
  • 1、字典的表示:花括号 {},字典中每一个元素都是 由{key:value} 键值对组成。
  • 注意点:字典中的键必须是唯一的,键必须是不可变类型的(一般情况下都是用字符串),值可以是任意类型的数据(字典,元组、列表等等都可以)
  • 2、字典的增删查改
  • 添加元素
  • get(“key”)通过指定键去添加对应的值
dic = {"name":999}
  dic["name"] = "小明"
  print(dic["name"])
  print(dic.get("name"))
  • update方法:更新某个key,有则改无则增
dic = {"name":999}
  dic.update({"name1":"李四"})
  print(dic)
  • 修改元素:同上用法
  • 通过指定键去修改对应的值
  • 查找元素
  • 通过键去查找对应的值dic[“key”]
  • get:没有返回None,上面的方式则会报错
  • keys:获取字典的所有key,如果 “key” in dic这种表达式,dic则是keys
  • values: 获取字典的所有值
  • itmes: 获取字典所有的键值对,以一个元组为元素的列表返回
  • 删除元素
  • pop:删除指定key-value
  • popitem:删除末尾的一个k-v(只对3.5版本以上),反之则随机删除
8、set:集合
  • 1、集合的表示:花括号{}
  • 2、注意点:空集合使用 set()来定义
  • 3、特性一:集合中不可存在重复的元素
  • 利用集合来对列表去重
  • 4、特性二:集合中只能存放不可变类型的数据
  • 利用集合来区分可变还是不可变类型
9、其他知识
  • 数据是否可变分类:
  • 可变类型:列表、字典、集合
  • 不可变类型:数值(int,float,bool),字符串,元组
  • 序列
  • 随机数模块:random
  • random.random():生成0-1之间的浮点数。
  • random.randint( ):生成指定范围的整数。
  • range函数:range(n,m,k)
  • 推导式:list(range(4)),快速生成一个list

二、运算符

1、算术运算符
  • + - * / % // **
2、赋值运算符
  • = 、+= 、 -= 、 /=、 %= 、 **=、
3、比较运算符
  • == 、 != 、<= 、>= 、 < 、 >
4、逻辑运算符
  • and :一假为假
  • or :一真为真
  • not :取反
5、成员运算符
  • in
  • not in
6、身份运算符
  • is
  • is not
tips:is和==的区别
  • is身份运算符,判断两个变量的引用对象是否相同(id方法内存地址)
  • ==比较运算符,判断的是两个变量的值是否相等

二、控制流程

1、条件语句
  • if
  • if - else
  • if - elif
  • if - elif - else
2、while条件循环
  • 条件循环
  • break:跳出循环体,终止当前循环
  • continue:中止当前本轮循环,开启下一轮循环
  • else: while条件不成立的时候执行
3、for条件循环
  • break:跳出循环体,终止当前循环
  • continue:中止当前本轮循环,开启下一轮循环
  • else:遍历完所有的数据时执行

三、函数

1、函数的定义和调用
  • 1、函数定义的关键字:def
  • def 函数名():
  • 2、函数的命名规范:
  • 遵循标识符的命名规范
  • 推荐使用下划线命名法(单词小写,单词和单词直接使用下划线)
  • 3、函数的调用:函数名()
2、函数的参数
  • 1、形参:定义的参数
  • 必需参数:
  • 默认参数:
  • 不定长参数:
  • *agrs
  • **kwargs
  • 2、实参:调用时实际的传递的参数
  • 位置传参:
  • 关键字传参:
3、函数的返回值
  • return 返回的内容
4、函数的作用域
  • 1、局部变量
  • 2、全局变量
  • 3、global
5、内置函数
  • 1、基本内置函数
  • print : 输出
  • input :输入(输入的不管是什么类型数据,都会当成字符串处理)
  • type:查看数据类型
  • id : 获取数据内存地址
  • range : 生成数据
  • len : 获取数据的长度(元素总数)
  • int、float、bool 、 str、list、tuple 、dict 、set :代表对应的数据类型
  • min 求最小值
  • max 求最大值
  • sum 求和
  • 2、高级内置函数
  • enumerate:返回元素的坐标和值:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,多实现在for循环中
list_1=['a','b','c'] 
for k,v in enumerate(list_1):
   print("序号为:{},元素值为:{}".format(k,v))
### 可以是enumerate返回的对象,可以list转换成元组为元素的列表,元组的组成就是序号和元素
  • eval:识别python中的表达式,去字符串标识
  • filter:过滤函数
  • zip:打包函数
  • lambda: 匿名函数
四、模块&文件
1、模块和包导入
  • 1、什么是模块:以 .py 结尾的文件,就是一个模块
  • 2、什么是包:python中的包就是一个包含一个__init__.py文件的目录(文件夹)
  • 3、模块导入
  • import 模块名
  • import 模块名 as 别名
  • from 模块名 import 函数(变量、类)
  • from 模块名 import *
  • 4、包导入
  • from 包名 import 模块名
  • from 包名.模块名 import 函数(变量、类)
2、文件操作
  • 1、打开文件:open(‘文件名’,‘r’,encoding=“uft8”)
  • 2、文件打开的模式:
  • r w a rb ab wb
  • 3、文件读取
  • read:读取所有内容
  • readdline:读取一行
  • readlines:读取所有行,可以指定读多少行
  • 4、文件写入 write
  • 5、文件关闭:close
  • 6、上下文管理器:with
with open(filename,'r',encoding='utf8) as f:
          pass
3、路径处理
  • 1、魔法变量:
  • __name__:
  • 如果不在启动文件中,代表的就是所在的文件(模块)的模块名
  • 如果当前文件值程序的启动文件中,它的值是 main
  • __file__: 代表当前文件的绝对路径
  • 2、os模块
  • os.path.dirname方法:获取当前文件的目录
  • os.path.join() 方法:拼接路径
  • 其他的方法:
方法 描述
os.getcwd() 显示当前的工作路径
os.chdir() 切换工作路径
os.mkdir() 在某个目录下创建一个新目录
os.rmdir() 删掉一个目录
os.listdir() 获取当前路径下的目录列表,返回列表格式数据
os.path.isdir() 判断当前文件是否是目录,返回布尔值
os.path.isfile() 判断当前文件是否是文件,返回布尔值

五、异常处理

1、异常分析
  • 如何通过异常找到错误代码
2、异常捕获
  • 1、异常捕获语句
  • try:
  • 有可能出现异常的代码
  • except :
  • 捕获到异常之后的处理方案 、
  • else:
  • 没有捕获到异常
  • finally:
  • 不管是否发生异常都会执行
  • 2、指定捕获多个异常

  • 3、捕获所有类型常见的异常

3、断言:assert

4、主动抛出异常:raise

六、面向对象

1、类的定义&创建对象
  • 1、类定义
  • 方式一:class 类名:
  • 方式二:class 类名(object):
  • 2、创建对象
  • obj = 类名()
2、属性
  • 1、类属性
  • 类属性的定义:直接定义在类里面的变量,类属性可以通过类去访问,也可以通过对象访问
  • 类的公有属性:不管在类里面还是类外面可以访问。
  • 类的私有属性:双下划线开头的,只能在类里面使用,在类外部是无法使用的
  • 2、实例属性
  • 实例属性的定义:对象.属性名 = 属性值
  • 实例属性只能通过对象去访问。
3、方法
  • 1、关于self的理解
  • self:代表的是对象本身,那个对象去调用方法,那么方法中的self代表的就是那个对象
  • 2、实例方法
  • 定义在类中的普通函数,第一个参数为self
  • 只能够通过对象调用
  • 3、类方法
  • 使用@classmethod装饰的方法叫类方法,类方法的第一个参数为cls
  • 调用:实例对象和类对象都可以调用。
  • 4、静态方法
  • 使用装饰器@staticmethod装饰的方法。没有“self”和“cls”参数,
  • 调用:实例对象和类对象都可以调用。
4、初始化方法__init__
  • 创建对象的时候,会自动调用,
  • 可以通过该方法初始化设置实例属性
5、继承
  • 如何继承?
  • 定义类时,类名后面的括号中写上继承的父类
  • 继承的作用
  • 子类通过继承可以获得父类的属性和方法,提高开发的效率及代码的复用率。
  • 注意点:
  • 私有属性不能够继承
6、方法重写和调用
  • 重写父类方法:
  • 在子类中定义和父类同名的方法,叫重写父类方法
  • 在子类中再调用父类中被重写的方法
  • 方式一:父类名.方法名(self)
  • 方式二:super().方法名()
7、属性动态设置
  • setattr:设置属性
  • 参数1:对象
  • 参数2:属性名
  • 参数3:属性值
  • getattr:获取属性
  • 参数1:对象
  • 参数2:属性名
  • delattr删除属性
  • 参数1:对象
  • 参数2:属性名
相关文章
|
8天前
|
JSON 测试技术 数据库
Python的Flask框架
Python的Flask框架
|
10天前
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
【9月更文挑战第3天】随着软件行业的迅速发展,代码质量和开发效率变得至关重要。本文探讨了Python在自动化及单元测试中的应用,介绍了Selenium、Appium、pytest等自动化测试框架,以及Python标准库中的unittest单元测试框架。通过详细阐述各框架的特点与使用方法,本文旨在帮助开发者掌握编写高效测试用例的技巧,提升代码质量与开发效率。同时,文章还提出了制定测试计划、持续集成与测试等实践建议,助力项目成功。
35 5
|
11天前
|
机器学习/深度学习 PyTorch 算法框架/工具
python这些库和框架哪个更好
【9月更文挑战第2天】python这些库和框架哪个更好
26 6
|
7天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
56 35
|
4天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
1天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维的探索之旅:从自动化到人工智能
在数字化浪潮中,运维领域正经历一场革命。本文将带你领略从传统手动操作到自动化脚本,再到集成人工智能的智能运维平台的演变之路。我们将探讨如何通过技术创新提升效率、降低成本并增强系统的可靠性和安全性。文章不仅分享技术演进的故事,还提供了实现智能化运维的实践策略和未来趋势的展望。
|
1天前
|
机器学习/深度学习 数据采集 运维
智能化运维:打造高效、自动化的IT系统
在数字化转型的浪潮中,企业对于IT系统的依赖程度日益加深。如何确保系统的高效运行和快速响应,成为摆在每一个IT管理者面前的难题。本文将探讨智能化运维的概念、实施步骤及其带来的变革,旨在为读者提供一套构建自动化、智能化IT运维体系的思路和方法。
|
8天前
|
运维 监控 安全
python在自动化运维中的妙用分享
python在自动化运维中的妙用分享
24 8
|
7天前
|
运维 Ubuntu Linux
掌握自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第5天】本文旨在通过深入浅出的方式,介绍如何利用Ansible这一强大的自动化工具来简化和加速日常的服务器配置管理工作。文章将首先概述自动化运维的重要性,接着详细讲解Ansible的基本概念、安装过程及其在服务器配置中的应用实例。我们将通过具体的操作步骤和代码示例,展示如何使用Ansible编写任务,以及如何执行这些任务以实现批量的服务器配置。最后,文章将探讨一些高级用法,帮助读者进一步提升自动化运维的能力。
|
8天前
|
运维 监控 Devops
自动化运维之路:从脚本到DevOps
【9月更文挑战第4天】本文通过探索自动化在运维中的应用,揭示从简单的shell脚本到复杂的DevOps实践的转变过程。我们将讨论如何利用自动化工具来提升效率、减少错误并优化工作流程,同时分享一些实用的代码示例,帮助读者理解自动化运维的实际应用场景。
24 5