来源:
PEP8:
- 每级缩进4个字符
- 每行不超过80字符
- 不要过多使用空行
- 比较运算符两边各添加一个空格
- 定义函数超过79个字符时,在函数定义中左括号后按回车键,并在下一行按两次tab
文章目录
变量和简单数据类型
变量
- 可以赋值的标签,可以指向特定的内容
字符串
方法
在name.title()中,name后面的句点(.)让python对变量name执行方法title()指定的操作。圆括号的存在是因为方法通常需要额外的信息来完成工作。
title()、upper()、lower()
strip()、rstrip()、lstrip()
f字符串
制表符\t、换行符\n
数
- 浮点数运算后小数位数可能不确定
- 整+/*/**浮点数=浮点数
- '_'会自动忽略(整数和浮点数表示中)
- 全大写定义常量
- %判断一个数是奇数还是偶数
列表
列表元素的修改、添加、删除
修改
- 末尾:append()
- 列表中:insert()
添加
删除
- del 索引删除
- remove() 值删除(只删除第一个值)
- pop()弹出栈顶元素
组织列表
- sort()永久排序
- sorted()临时排序
- reverse()
- len()
操作列表
for 遍历
创建列表
range(start, stop, step)
- 范围:[start, stop)
- start默认为0,step默认为1
列表解析
- 表达式+for循环
切片
使用列表的部分元素
- 复制列表:
friend_foods = my_foods[:]√
friend_foods = my_foods×
元组
- 值不可变
- 单元素元组后加","(my_t = (3,))
- 可重新赋值
if
- 两个大小写不同的值被视为不相等
系列if语句
-
多条件情况
- if-elif-elif严谨清晰
- if-elif-else包罗万象,但可能引入无效或恶意的数据
if-elif-else
- 单条件情况
字典
- 键值对
- 多行定义字典时:
- 每个键值对前面缩进四个空格,后面加",“(最后一个键值对也加”,")
- 右花括号缩进四个空格,与键值对对齐
- 方法get()访问可能不存在的值
遍历
- 方法items(),返回键值对列表
- 无方法时(或为方法key()时),默认遍历所有的键
- 集合set()可找出列表中独一无二的元素,并使这些元素来创建一个集合
嵌套
用户输入与while循环
input()
- 提示末尾后面包含一个空格
while循环
- 标志(flag):当很多条件都满足才能继续运行的程序使用
- 对每个while循环进行测试,确保按预期结束
函数
- 每个函数包含简要地阐述其功能的注释。注释应紧跟在函数定义后面,并采用文档字符串格式
- 形参实参指定值时"="两边不要有空格
- 函数间两个空格分开
传递实参
- 实参形参一一对应
- 先在形参列表中列出没有默认值的形参
返回值
- 可选实参:给形参指定一空的默认值
传递列表
- 禁止函数修改列表(除非有充分理由,否则还是应将原始列表传递给函数):function_name(list_name[:])
传递任意数量实参
- 形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中
- 将接纳任意数量实参的形参放在最后
- *args:收集任意数量的位置实参
- **kwargs:收集任意数量的关键字实参
将函数存储在模块中
- module_name.function_name():pizza.make_pizza(16,
‘pepperoni’)(调用pizza模块中的make_pizza函数)
类
- 驼峰命名法:类名中每个单词首字母大写,而不使用下划线。实例名和模块名小写,单词间加下划线。
- 每个类在定义后面包含一个文档字符串;每个模块也包含一个文档字符串
- 在类中,用一个空行分割方法;在模块中,用两个空行来分割类
- 先编写导入标准库模块的import语句,在添加一个空行,然后编写导入自己编写的模块的import语句
创建和使用类
- 方法__init__()(前后两个“_”):
- def _init_(self, name, age):通过实参传递名字和年龄,self会自动传递,故不需传递它,只须传递name与age
使用类和实例
- 可在方法__init__()中指定默认值,为实例服务
继承
- 创建子类时,父类必须包含在当前文件中,且位于子类前面。
- super()是调用父类中__init__()的函数
导入类
Python标准库
- randint(1, 6)生成1和6之间的随机整数
- choice()随机返回列表或元组中的一个元素
文件和异常
在文件中读取数据
- with open(‘pi_digits.txt’) as file_object:
open(‘pi_digits.txt’)返回一个表示文件pi_digits.txt的对象,Python将该对象赋给file_object供以后使用(只管打开文件,Python会在合适时自动将其关闭) - read()到达文件末尾时返回空字符串,而将这空字符串显示出来时就是一个空行
- readlines()从文件中读取每一行,并将其存储在一个列表中
写入文件
- with open(‘pi_digits.txt’, ‘w’) as file_object:
- 第一个实参时文件的名称
- 第二个实参是模式:
- 写入模式(‘w’)
- 读取模式(‘r’)
- 附加模式(‘a’)
- 读写模式(‘r+’)
- 忽略模式参数则默认只读模式
异常
- try-except/try-except-else:将可能发生异常的代码块放入try,若有异常,则运行except,正常则运行else
存储数据
- json.dump()
- json.load()
测试代码
- unittest提供了代码测试工具
- 所有以_test打头的方法都将自动运行
- 断言方法:断言正确,那就打扰了;若断言失败,则通知一声
- _name_:如果此文件作为主程序执行,变量__name__将被设置为_main_。作为主程序时运行,非主程序不运行
- unittest.main()运行测试用例
测试函数
测试类
- setUp()方法中创建一系列实例并设置其属性,再在测试方法中直接使用这些实例