欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python复习笔记02

程序员文章站 2022-07-21 18:03:56
语句表达式: 在Python中支持遍历循环的对象:可迭代器对象,支持迭代协议的对象 比如列表list没有迭代功能只是可迭代对象 迭代:迭代协议 --> 例:f.__next__() 属于f的迭代方法,全局的迭代方法为next(f) 迭代工具 --> for,…推导… map… 迭代器对象 已经实现 ......

语句表达式:

在python中支持遍历循环的对象:可迭代器对象,支持迭代协议的对象

                                              比如列表list没有迭代功能只是可迭代对象

     迭代:迭代协议 --> 例:f.__next__() 属于f的迭代方法,全局的迭代方法为next(f)

               迭代工具 --> for,…推导…  map…

                       迭代器对象    已经实现

                       可迭代对象     iter() --> __iter__()用于生成迭代器

                       iter(f) is f 判断f是否有迭代功能

           内置可迭代对象 --> range()  map(函数,可迭代对象) zip() …

注意:list在数据量小的时候操作简单方便,在数据量大的时候占用过大内存,不如支持迭代协议的对象,用到某个值就取出某个值,对内存的消耗小。

 

函数:

why最大化代码重用、最小化代码冗余、过程分解

        定义: def 函数名(参数1,…):函数体

       调用:函数名(实际参数)

       变量作用域:built-in、global(global)、enclousure(nonlocal)、local

       参数:传递1. 不可变类型,传递副本给函数,函数内操作不影响原始值

                        2. 可变类型,传递地址引用,函数内操作可能会影响原始值

                           传副本可以不改变原始值

                    匹配 位置匹配、关键字匹配、默认值(调用时省略传值)、*args任意数量参数(接收元组)、**kwargs(接收字典表)

        lambda表达式:定义匿名函数,基本格式 lambda 参数1,… :函数

       高级工具:map(函数,可迭代对象)、filter(函数,可迭代对象)

       !!!注意委托模式的使用!!!  代码实例:

def hello_chinese(name):
    print('您好:', name)

def hello_english(name):
    print('hello', name)

def hello_japanese(name):
    print('こんにちは', name)

hello = hello_english   
# hello = lambda name:print('你好', name)
hello('tom')   #这个步骤就委托 hello_english 函数
def hello(action, name): 
action(name)
hello(hello_japanese, 'tom') #这个步骤就委托 hello_japanese 函数
#hello(lambda name: print('nllpko', name), 'tom')

 

 

包与模块管理

模块

指令:import  from  importlib.reload(模块)

why:代码重用  命名空间  实现数据或服务共享

步骤:1找到模块文件  2编译为字节代码  3运行模块文件

          如果想使用模块的最新改变的结果可使用

          import importlib

          importlib.reload(模块)   (注意在调用模块时直接(import 模块名)不能使用(from…import…)形式)

搜索范围:1程序主目录  2环境变量  3标准库  4扩展库

 

面向对象编程

步骤:ooa面向对象分析  ood面向对象设计  oop面向对象编程

实现:1分析对象的特征行为  2写类描述对象模版  3实例化,模拟过程

特征:封装 继承 多态

def __repr__(self): return…   或    def __str__(self): return…

print(对象)    可以得到想要打印与对象相关的内容

实例代码

class book:
    count = 0

    def __init__(self, title, price=0.0, author=none):
        self.title = title
        self.price = price
        self.author = author
        book.count += 1

    def __del__(self):
        book.count -= 1

    def __repr__(self):
        return '<图书: {}>'.format(self.title)

    def __str__(self):
        return '[图书:{}, 价格:{}]'.format(self.title, self.price)

    def print_info(self):
        print(self.title, self.price, self.author)


if __name__ == '__main__':
    book1 = book('python经典', price = 29.0, author = 'tom')
    book2 = book('flask')
    book3 = book('asp.net')

    del(book3)
    print(book1)  # 运行后会看到[图书:python经典, 价格:29.0]

    # print('图书数量:{}'.format(book.count))