文章目录
python基础语法
数据类型
数值
- int类型
- float类型
- bool类型
- 运算符
- 算数运算符:+,-,*,/,%,//,** …
- 比较运算符:>,<,==,!= …
- 赋值运算符:=,+=,-=,*=,/= …
- 逻辑运算符:and or not …
- 身份运算符:is is not …
- 成员运算符:in not in …
字符串
- 字符串的定义:使用单引号,双引号或三引号包起来
- 字符串拼接:使用 + 号或者是 join 进行拼接
- 字符串格式化输出:
- format:
- 字符串转义:\ 或 r
- 字符常用方法:
- 字符串下标取值和切片:与列表等有序数组操作相同
列表
- 列表定义:用中括号来表示,其中的内容能够为任意类型
- 列表的增删改查:
- 添加元素:append(向尾部添加一个)、extend(向尾部添加一个元组中的多个元素)、insert(向指定位置添加一个元素)
- 删除元素:remove(删除列表中第一次出现的value)、pop(删除指定下标的元素)、clear(清空列表中的元素)
- 修改元素:直接通过下标赋值
- 查找元素:通过下标取值、index(返回这个值的第一个下标)、count(返回这个值的个数)
- 列表的其他方法:sort(对列表进行排序,用得较少),reverse(列表倒序),copy(将该列表复制一个副本)
元组
- 元组的定义:使用()将元素括起来
- 元组查找元素的方法:count、find
- 元组下标取值和切片操作
字典
- 字典的定义:``{‘name’:‘kaishui’,‘gender’:‘female’}`
- 字典的增删改查:
- 添加元素:直接通过键进行赋值
- 删除元素:pop
- 修改元素:通过键赋值
- 字典查询元素:get、通过key查找。区别:get不会报错
- 字典的其他方法:keys、values、items
集合
特点:无序,去重,元素必须是不可变类型的数据
数组类型的总结
-
数据类型分类:
- 数值: int、float、bool
- 序列:str、list、tuple(内部元素有序,支持下标取值和切片)
- 散列:set、dict(内部元素无序)
-
可变和不可变
- 可变:list,dict、set
- 不可变:数值、字符串、元组
控制流程
条件判断
- if
- if else
- if elif else
while循环
while 循环条件:
条件成立执行的循环体
- break :直接跳出循环
- continue:跳过这次循环,进入下次循环
for循环
-
for else 语句:
-
for 变量 in 被遍历的数据: 循环体 else: # for循环遍历完所有的数据之后,执行else中的语句。 # 如果中途break了,则不会执行else中的语句
函数
函数的定义和调用
-
定义语法格式
-
def 函数名(): 函数体
-
调用:函数名()
函数的返回值
return
函数的参数
-
形参
- 必备参数
- 默认参数
- 不定长参数
- *args(传入元组),**kwargs(传入字典)
-
实参
- 传参的三种形式:
- 位置参数
- 关键字参数
- 序列传参
- 传参的三种形式:
函数的作用域
- 全局变量
- 局部变量
- global
内置函数
- print(),input(),len(),range(),id(),type()
- enumerate(获取序列下标和每个下标对应的元素)
- eval
- filter,过滤,与匿名函数搭配使用
- zip
文件、路径、异常
文件的操作
文件打开和关闭
- open
- close
文件内容读取
- read(读取所有存放在字符串中)
- readline(读取一行)
- readlines(读取所有行的内容放在列表中)
文件内容写入
- write(写入一行)
- writelines(写入多行)
文件打开的模式
- r :读取模式
- a:追加写入模式
- w:覆盖写入模式
- 对于图片的操作模式:rb,wb,ab
with操作文件
打开文件流进行相关操作后,不用使用close函数就能直接关闭该文件
模块导入
import 模块
from 模块 import 变量,函数
from 包名 import 模块
from 包名.模块 import 变量,函数
from 模块 import 变量 as 别名
路径处理
- os 模块来处理路径
- os.path.abspath(path) : 返回绝对路径
- os.path.dirname(path) :返回文件路径
- os.path.join(path1[,path2[,path3…]]):把目录和文件名合成一个路径
- os.path.isdir(path), os.path.isfile(path):判断路径是否为文件夹/文件
异常处理
-
异常分析
-
异常捕获
-
try: # 可能出现异常代码 except Exception as e: # 处理异常代码 else: # 代码没有出现异常 finally: # 无论有没有出现异常都会执行
-
断言和抛出异常
- assert:断言
- raise:主动抛出异常
面向对象
类和对象的概念
类是一类事物的抽象概念 ,描述了这一类事物的共同特征和行为。
实例对象是这一类事物的具体个体。
类的定义和对象的创建
类的定义:class Cat
实例对象:kitty = Cat()
类属性和实例属性
类属性:直接定义在这个类中的变量,能够使用类和变量直接调用
实例属性:对象所具有的独有属性,只能够使用实例对象进行调用。
_ _ init_ _方法
初始化方法,在类被调用时会自动执行该方法
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
xiaoming = Student('xiaoming','19')
self的理解
self作为实例方法的参数,代表的是调用这个方法的对象。
类方法、静态方法和实例方法
类方法:使用@classmethod修饰,第一个参数为cls。方法内部只用到类属性,类和对象都能够直接调用该方法
静态方法:使用@staticmethod修饰,其中既没有类属性也没有实例属性。
实例方法:第一个参数为self,只能够使用实例对象来调用该方法
类的继承
-
继承一个父类
-
class Car(Bicycle): pass
-
object:python中所有类的顶级父类
-
继承多个父类
-
class Car(父类1,父类2): pass
-
子类用过继承能够获得父类中所有的方法和属性,私有属性不能够继承。
-
私有属性:使用__开头的变量。
重写父类方法和调用
- 重写父类方法:
- 调用被重写的父类方法:
- 父类名.方法(self)
- super().方法()
动态设置属性:
- setattr(类名,属性名,属性值):动态设置类中对应的属性为传入的属性值,用于不确定属性名的场景
- getattr(类名,属性名,默认值):如果在类中未找到该属性,则返回默认值。
- 一般用于不确定属性名的场景,例如属性名为列表中的值。
- delattr(类名,属性名):删除类中对应的属性,和del相似,但可用于不确定属性名的删除。
- hasattr(类名、属性名)
最后总结一下:
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:593462778,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
作者:暗潮汹涌
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。