python基础知识
一.数据类型
数值类型
-
整数:int
-
浮点数:float
-
布尔值:bool
-
算术运算符
-
+、-、*、/、%、//
-
序列类型
-
字符串:str
-
jion(字符串拼接)、split(字符串分割)、strip(去除空格)、format(格式化输出)、index(字符串查找)
-
格式化输出:%s(字符串占位)、%d(数值占位)、%f(浮点数占位)
-
-
列表:list
-
添加数据:append(默认在最后添加)、extend(可添加多个)、insert(指定位置添加)
-
删除数据:pop(默认删除最后一个)、remove(删除指定的元素)、clear(清空列表)、del(删除整个列表及空间)
-
修改数据:list[1] = 999
-
查找数据:find、index(通过下标查找元素)、count(统计列表中元素的个数)
-
copy(复制)、sort(排序)、reverse(反序)
-
-
元组:tuple
-
count(统计元组中元素的个数)、index(通过下标查找元素)
-
散列类型
-
字典:dict
-
添加元素:dic[key] = value、update(将一个字典添加到另一个字典中)
-
查找:get(查找键值)、keys(所有的键)、values(所有的值)、items(所有的键值对)
-
删除:pop(删除指定的键值对)、popitem(默认删除最后一对)、del(删除指定的键值对)
-
-
集合:set
-
add、列表去重数据
-
二.控制流程
条件判断:if elif else
for循环(遍历循环):for else(循环被break结束,else中的语句不会被执行)
while循环(条件循环):while
运算符
-
比较运算符:< > <= >= !=
-
赋值运算符:
-
成员运算符:in not in
-
身份运算符:is is not
-
逻辑运算符:or and not
三.函数
函数定义:def
函数的参数
-
传参:位置参数、关键字参数
-
定义参数:必需参数、默认参数、不定长参数(*args(元组),**kwargs(字典))
函数返回值:return
变量的命名空间
-
局部变量:定义在函数内部
-
全局变量:定义在整个模块中
-
global:在函数中修改全局变量
扩展
-
文件的操作
-
打开文件:f = open('filename','r') with('filename','r')
-
打开文件的模式:r(只读)、r+(读写)、w(清空再写)、w+(读写)、a(文件不存在会新建)、a+(读写)
-
读写操作
-
read(读取文件内容)
-
readline(读一行内容)
-
readlines(将所有的数据都读取出来,放到一个列表中)
-
-
write(写入)
-
writelines、write
-
-
-
文件关闭:close
-
-
模块和包的导入
-
import
-
from xxx import xxx
-
import xxx as name
-
from xxx import xxx as name
-
from xx import *
-
-
路径处理(os模块)
-
os.path.jion:路径拼接
-
os.mkdir:创建目录
-
os.rmdir:删除目录
-
os.path.realpath:返回真实路径
-
os.path.dirname():返回上一级目录
-
os.listdir:获取当前目录下的文件和目录列表
-
os.isdir:判断当前路径是否是一个目录
-
os.path.isfile:判断是否是一个文件
-
-
异常处理
-
try:有可能出现异常的代码
-
except:捕获到异常之后的处理代码
-
else:没有发生异常时执行的代码
-
finally:是否发生异常都会执行的代码
-
assert:断言
-
raise:主动抛出异常
-
-
异常类型
-
NameError、TypeError、OsError、ValueError.....
-
四.面向对象
类和对象
-
类定义:class关键字,object所有类的顶级父类
-
属性
-
类属性(定义在类中):类和实例都可以调用
-
实例属性:使用实例对象才可以调用
-
-
实例方法
-
实例方法:第一个参数为self,由实例对象调用
-
self:代表对象本身,哪个调用就代表哪个对象
-
-
new:创建对象的时候第一个调用的方法,它是用来创建对象的
-
初始化方法(init):创建对象的时候自动调用,为对象做初始化处理
-
类方法
-
通过@classsmethod装饰过的方法,第一参数为cls(cls代表类本身)
-
类和实例对象都可以访问
-
-
静态方法
-
通过@staticmethod装饰过的方法
-
类和对象都可以访问
-
类和继承
-
object:所有类的顶级父类
-
子类通过继承可以获得父类的属性和方法
-
重写父类方法
-
调用父类方法
-
父类名.方法名(self)
-
super().方法名
-
-
自定义属性的访问
-
setattr:设置属性时触发
-
setattr(object,kye,value):给对象设置属性和值
-
-
getattrbute:查找属性时触发
-
getattr:查找属性时,属性不存在出现AttrError时触发
-
delattr:删除属性时触发
-
五.综合进阶
单元测试:unittest
-
TestCase:测试用例
-
测试用例都继承于该类 class RegisterTestCase(unittest.TestCase):
-
每一个测试用例都一个以test开头的方法 def test_xxxx(self):
-
-
测试用例的前置和后置
-
前置:setUp--测试用例执行之前执行的
-
后置:tearDown--测试用例执行完执行的
-
-
测试套件:TestSuite
-
suite.addTest(直接加载用例对象)
-
suite.addTest(添加多个测试用例)
-
通过TsetLoader添加
-
通过模块添加:suite.addTest(loader.loadTestsFromModule(模块名))
-
通过测试用例类添加:suite.addTest(loader.loadTestsFromTestCase(测试用例类))
-
通过目录添加:suite.addTest(loader.discover(路径))
-
-
-
执行测试用例:TestRunner
-
TextTestRunner
-
HTMLTestRunner
-
runner.run(suite)
-
-
unittest 断言
-
assertEqual、assertNotEqual、assertIs、assertTure....
-
操作excel
-
import openpyxl
-
workbook工作簿
-
sheet表单
-
cell表格
-
excel的类封装
ddt数据驱动
-
ddt用来装饰测试用例类,通过数据驱动生成测试用例,一条数据生成一条测试用例
-
ddt
-
data
logging日志模块
-
日志收集器 my_log = logging.getLogger(logger_name)
-
日志收集等级 my_log.setLevel(level)
-
日志输出渠道 l_s = logging.StreamHandler()
-
日志输出等级 l_s.setLevel(sh_level)
-
日志输出渠道添加到日志收集器 my_log.addHandler(l_s)
-
日志输出格式: ft = "%(asctime)s - [%(filename)s -->line:%(lineno)d] - %(levelname)s: %(message)s" ft = logging.Formatter(ft) l_s.setFormatter(ft)
配置文件
-
section
-
option