Python编程从入门到实践-笔记

第八章 函数

传递列表的副本而非引用

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()

第十二~十四章 游戏

第十五章 生成数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。