第八章 函数
传递列表的副本而非引用
funtion_name(list_name[:])
切片表示法[:]创建列表的副本
传递任意数量的实参
def fname(*args): 
fname('mushrooms')
fname('mushrooms','cheese')
形参名*args中的星号让Python创建一个名为args的空元组,并将收到的所有值都封装到这个元祖中。
使用任意数量的关键词实参
def fname(**args):
    for key, value in args.items():
    ...
fname(location='princeton',field='physics')
形参**args中的两个星号让Python创建一个名为args的空字典,并将收到的所有名称-值对都封装到这个字典中。
使用模块
import module_name
module_name.funtion_name()
from module_name import function_name as fn #导入并指定别名
from module_name import * #导入全部(不推荐 建议用句点表示法)
funtion_name()
第九章 类
class Dog():
    def __init__(self,name,age):
        #每次根据Dog类创建新实例时,自动运行的初始化方法
        self.name = name
        self.age = age
    def sit(self):
        #self会自动传递
        print(self.name + "is sitting")
继承
class SomeDog(Dog):
    def __init__(self,name,age):
        super().__init__(name,age)#调用父类的初始化方法 父类也称为superclass
        self.type = 'sth'
my_dog = SomeDog('lala',4)
my_dog.sit()
第十章 文件和异常
打开并读取文件
使用with则不用再file.close()
with open('filename') as file_object:
    contents = file_object.read() #全部读取
    for line in file_object:#逐行读取
        print(line)
    lines = file_object.readlines() #得到一个列表
写入文件
with open('filename','w') as file_object:
    file_object.write('Hello world!')
读取模式'r',写入模式'w',附加模式'a',读取和写入'r+'
异常
try:
    ans = num1/num2
except ZeroDivisionError:
    print("You can't divide by zero!")
else:
    print(ans)
使用json存储数据
json.dump()接受两个实参:要存储的数据,可用于存储数据的文件对象
import json
numbers = [2,3,5,7,11,13]
filename = 'number.json'
with open(filename, 'w') as f_obj:
    json.dump(numbers,f_obj)
json.load()读取json文件:
import json
filename = 'number.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)
第十一章 测试代码
使用python标准库中的unittest模块,创建一个继承unittest.TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
    #测试name_function.py
    def test_first_last_name(self):
        formatted_name = get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name, 'Janis Joplin') #一个断言方法 核实结果是否与期望一直
unittest.main()