美文网首页
#Python读书会第2次总结#

#Python读书会第2次总结#

作者: DrBear_smile | 来源:发表于2017-12-20 22:25 被阅读0次

    《Python编程从入门到实践》6-9章总结

    作者 Eric Matthes 著, 袁国忠 译

    中国工信出版集团,人民邮电出版社

    章节内容

    • 字典
    • 用户输入+while循环
    • 函数

    ch6 字典

    定义

    • {},键值对

    使用字典

    alien_0={'color':'green','points':5}
    
    • 添加
    • 删除:del

    遍历字典

    for key,value in user_0.items():
        print(key)
        print(value)
    
    
    • 排序: sorted
    • .keys()
    • .values()

    嵌套字典

    • 字典 in 列表
    alien_0={'color':'green','points':5}    
    alien_1={'color':'red','points':50}
    alien_2={'color':'yellow','points':10}
    aliens = [alien_0,alien_1,alien_2]
    
    for alien in aliens:
        print(alien)
    
    • 列表 in 字典

    • 字典 in 字典

    不推荐这种方式,可以考虑 字典in列表 进行使用

    ch7 用户输入和while循环

    input vs raw_input()

    • input("hint by words")
    • int() # enter number
    • 求余%

    while

    • 退出条件 while condition
    • break
    • continue
    • ctrl+c

    千万注意循环跳出条件,单元测试的主要问题点

    while 处理列表和字典

    • for vs while
    • for 会预制循环条件,不应修改循环对象
    • while 用于调整循环遍历对象时的循环处理

    while 删除指定元素

    • []
    pets = ['dog','cat,'dog','goldfish','cat','rabbit']
    while 'cat' in pets:
        pets.remove('cat')
    

    ch8 函数

    def functionname(var):
        code_body
    
    functionname(in_var)
    

    参数

    • 形参
    • 实参

    实参就是形参的取值,多数人不区分两者

    参数传递

    • 位置实参

    注意传递顺序

    • 关键字实参

    传递时指明形参与实参的对应

    • 默认值
    • 形参未赋值时的默认值
    • 默认值要往后放,不能前面有默认值,而后面没有,顺序赋值

    返回值

    • return
    • 返回字典

    入参为列表

    • 类似于C的数组、指针
    • 需要禁止修改入参,将列表用切片方式传入副本
    • 主要考虑点是效率:效率会因为内存使用而增加时间成本
    • 入参为元组,可实现可变参数的输入(量的变化)
    • 位置实参与任意实参结合

    即位置实参与元组参数的结合,注意默认顺序赋值的原因,需要将变参(任意实参)放在最后一个形参

    • 任意数量的关键字实参
    def fun(invar1,**invar2)
    

    引入模块

    函数存储在模块

    存储为a.py
    新的b.py中调用模块a

    import a
    
    import module_name
    module_name.function_name()
    
    from module_name import function_name
    from module_name import fun1, fun2, fun3
    
    • as 别名
    import module_name as newmodulename
    
    • 导入所有:from module_name import *

    函数编写指南

    • 小写+下划线,避免大写
    • 形参等号两边不要留空格
    • 相邻函数的定义,隔两空行

    ch9 类 class

    关键词: 面向对象,实例

    创建和使用类

    命名类首字母大写

    全部小写的,是函数和变量

    __init__()
    
    if __name__ == '__main__':
    #测试使用
    
    • 注意self的使用,外部使用类时,self参数相当于自动隐藏

    使用类

    class Car():
        def __init__(self,make,model,year):
            self.make = make
            self.model = model
            self.year = year
        
        def get_descriptive_name(self):
            long_name = str(self.year)+' ' + self.make + ' ' + self.model
            return long_name.title()
        
        
    #%%    
    if __name__ == '__main__':
        my_new_car = Car('audi','a4',2016)
        print(my_new_car.get_descriptive_name())
        
    
    • 可以设置方法来操作属性值
    • 但是要注意到:有权限访问到程序的人,都可以直接访问属性值并进行修改。因此,需要注意细节,控制好访问权限

    继承

    • super.init
    • 父类、子类需在一个文件内
    • import 也是可以引入的,后文中有专门的类导入
    import BookRC as bc
    
    
    class EECar(bc.Car):    
        def __init__(self,make,model,year):
            super().__init__(make,model,year)
            
            
    if __name__=="__main__":
        neweecar = EECar('ford','yibo',2014)
        print(neweecar.get_descriptive_name())
    
    • 重写父类的方法名

    同名重写即可,根据函数作用域即可实现子类使用新的方法,不影响父类的同名方法

    • 实例作为属性

    需要递进.进行属性访问

    类的导入

    from module_file_name import Class_name
    # 关于用户定义的类、函数,尽量定义清晰,准确定义与引用
    
    • 导入类与导入模块的函数一样

    标准库

    python给出的标准库,通常而言,标准的库肯定比自己写的效率更好一点

    不要自己造轮子,所有程序的轮子,大部分就存在于标准库

    Python Module of the Week

    编码风格

    • 类名:驼峰命名法,首字母大写,无下划线
    • 模块、实例:小写英文+下划线
    • 类中一个空行分隔方法
    • 模块中,两个空行分隔类

    相关文章

      网友评论

          本文标题:#Python读书会第2次总结#

          本文链接:https://www.haomeiwen.com/subject/gmgnwxtx.html