sort()是永久排序 sorted()是临时排序
len()获长度
数字列表
range(a,b)随机生成数字(不包括b),可加第三参指定步长
range()作为list()的参数
列表解析
squares=[value**2 for value in range(1,11)]
使用列表的一部分(切片)
复制列表 [:]
元组(不可变的列表)
使用()表示元组
不可改变元组的值
可以给元组变量重新赋值
多条件用and和or
in判断元素是否在列表中 not in
if-elif-else
字典是一系列的键-值对
字典是用{}定义
del 删除键值对
items()返回key-value列表
keys()只返回key
遍历列表默认只遍历所有的key
sorted()来按照顺序遍历字典
values()遍历字典中的value
set()用于剔除重复值
for循环遍历列表是不能改变,使用while时可以继续修改
传递实参
位置实参
关键字实参
传递列表 函数对列表的修改是永久性的,若要保留原列表,使用list[:]传递副本
传递任意数量参
(*toppings) 星号创建了一个元组
(**user_info) 可接收任意数量的键值对,两个星号创建了一个空字典
将函数存储在模块中
导入整个模块
导入时 import 模块名
使用时 module.function()
导入特定的函数
form module import function_1,function_2
使用as给函数指定别名
form module import function as fun
使用as给模块指定别名
import module as md
导入模块中的所有函数(几乎不用)
from module import *
创建类
init()方法,会自动运行 init()中的形参self不可少
可通过实例访问的变量称为属性
使用类 修改属性的值:
直接通过实例修改
通过方法设置
继承
创建子类时父类必须在当前文件
在括号内指定子类名称
Python标准库
random.randint()返回一个位于指定范围内的整数
open()函数用来打开文件
关键字with在不再需要访问文件后将其自动关闭
with open(...) as ...
全部读取
read(file_object)
逐行读取
for line in file_object:
print(line)
使用with时,open()返回的文件对象只在with代码块内使用,要在with块外使用时,将文件各行存储在一个列表中
with open(file_name) as file_object:
lines=file_object.readlines()
for line in lines:
print(line)
写入文件
with open(filename,'w) as file_object:
file_object.write("I love Python")
'w'是告诉python要以写入模式打开文件
'r' 读取模式
'w' 写入模式(清空旧数据)
'a' 附加模式(不清空旧数据)
'r+' 读加写
只能将字符串写入文本中
异常
try-except代码块处理异常
常见异常
ZeroDivisionError FileNotFoundError
在except语句块中使用pass什么都不做
line.count('apple') 统计特定单词出现了多少次
存储数据
json.dump(data,file)存储数据,存储的数据和python中的数据格式一样
json.load(file)可读取数据+格式,这是程序间共享数据的方式
重构 将代码划分为一系列完成具体工作的函数
测试函数 unittest模块提供了代码测试工具
import unittest
class NamesTestCase(unittest.TestCase):
#方法必须test_打头,才能自动运行
#方法名必须是描述性的
def test_function(self):
re=function()
self.assertEqual(re,'right')
unittest.main() #让python运行测试代码
测试类
每测试类的一个方法都有创建一个类的对象
使用setUp()方法,只需创建对象一次。因为,python会先执行setUp(),在运行以test_打头的方法。
class TestAnonymousSurvey(unittest.TestCase):
def setUp(self):
question="what language did you first learn to speak?"
self.my_survey=AnonymousSurvey(question)
self.responses= ['english','chinese','spanish']
def test_store_single_response(self):
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0],self.my_survey.responses)
def test_store_three_response(self):
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response,self.my_survey.responses)
unittest.main()
可以在setUp()中创建一系列实例,并设置他们的属性
本文章使用limfx的vscode插件快速发布