Python复习笔记02
语句表达式:
在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))
Python复习笔记02的更多相关文章
- Python复习笔记(四)高阶函数/返回函数/匿名函数/偏函数/装饰器
一.map/reduce map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次 作用到序列的每个元素,并把结果作为新的Iterator返回. reduce r ...
- Python复习笔记(一)高级变量类型
目标 列表元组 字典 字符串 公共方法 变量高级 01. 列表 02. 元组 03. 字典 04. 字符串 1)判断类型 - 9 2) 查找和替换 - 7 3) 大小写转换 - 5 4) 文本对齐 - ...
- Python复习笔记-字典和文件操作
抽时间回顾2年前自己做过的python工具,突然感觉不像自己写的,看来好久没用过python的字典和文件操作了,查询资料和网页,整理如下: 一.字典 键值对的集合(map) 字典是以大括号“{}”包围 ...
- 【python学习笔记02】python的数据类型2
列表和元组之间的主要区别是:列表括在括号([])和它们的元素和大小是可以改变的,而元组在圆括号(),不能被更新.元组可以被认为是只读列表. 存储在一个列表中的值可以使用切片操作符来访问([]和[:]) ...
- Python复习笔记(十)Http协议--Web服务器-并发服务器
1. HTTP协议(超文本传输协议) 浏览器===>服务器发送的请求格式如下:(浏览器告诉服务器,浏览器的信息) GET / HTTP/1.1 Host: www.baidu.com Conne ...
- Python复习笔记(七)线程和进程
1. 多任务 并行:真的多任务 并发:假的多任务 2. 多任务-线程 Python的 Thread模块是比较底层的模块,Python的 Threading模块 是对Thread做了一些包装,可以更加方 ...
- Python复习笔记(六)网络编程(udp/tcp)
一.网络-udp(用户数据报协议) 用户数据报协议 类似写信,不安全,数据有可能丢 1.1 ip地址 注意: IP地址127.0.0.1 ~ 127.255.255.255 用于回路测试 私有ip地址 ...
- Python复习笔记(五)面向对象
1. __init__方法 # 1. 为对象在内存 中分配空间 -- 创建对象 # 2. 为对象属性 设置初始值 -- 初始化方法(init)+-------------- # 3. __init__ ...
- Python复习笔记(三)函数进阶
问题 1:在函数内部,针对参数使用 赋值语句,会不会影响调用函数时传递的 实参变量? —— 不会! 无论传递的参数是 可变 还是 不可变 只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量 ...
随机推荐
- [TJOI2019]唱、跳、rap和篮球——NTT+生成函数+容斥
题目链接: [TJOI2019]唱.跳.rap和篮球 直接求不好求,我们考虑容斥,求出至少有$i$个聚集区间的方案数$ans_{i}$,那么最终答案就是$\sum\limits_{i=0}^{n}(- ...
- NOIP2018普及组初赛解题报告
本蒟蒻参加了今年的NOIP2018普及组的初赛 感觉要凉 总而言之,今年的题要说完全没有难度倒也不至于,还有不少拼RP的题,比如第一次问题求解考逻辑推理,第一次完善程序考双链表等 下面我就和大家一起看 ...
- 使用C#代码调用Web API
1. POST POST的参数需要加上[FromBady],且参数只能一个 客户端提交数据的时候ContentType 为 application/x-www-form-urlencoded 或者 a ...
- dubbo zookeeper图解入门配置
这次主要是对dubbo 和zookeeper的配置做个记录,以便以后自己忘记了,或者踩的坑再次被踩 快速阅读 zookeerer类似 springcloud中的Eureka都做为注册中心,用srpin ...
- 个人学习分布式专题(二)分布式服务治理之分布式协调技术Zookeeper
分布式协调技术Zookeeper 2.1 zookeeper集群安装部署(略) 2.2 zookeeper的基本原理,数据模型 2.3 zookeeper Java api的使用 2.4 zookee ...
- 网络爬虫requests-bs4-re-1
最近了解了爬虫,嗯--------,有时候会搞得有点头晕. 跟着线上老师实现了两个实例.可以用python下载源代码玩玩,爬淘宝的很刺激,虽然违反了ROBOTS协议. GIT地址
- SQL-W3School-函数:SQL FIRST() 函数
ylbtech-SQL-W3School-函数:SQL FIRST() 函数 1.返回顶部 1. FIRST() 函数 FIRST() 函数返回指定的字段中第一个记录的值. 提示:可使用 ORDER ...
- Visual studio 正在从以下位置加载符号:Microsoft符号服务器 尝试取消禁用后续符号加载
正在从以下位置加载符号:Microsoft符号服务器 尝试取消禁用后续符号加载 进入VS---工具---选项----调试----符号,看右边有个“Microsoft符号服务器”,将前面的勾去掉,( ...
- 24 Flutter官方推荐的状态管理库provider的深入使用、初始化修改状态、父子组件同步状态
加群452892873 下载对应24课文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展. cupertino_icons: ^0.1.2 flutter_swi ...
- 浅谈Delphi高效使用TreeView
本来我一直都是使用递归算法, 效率很低 下边这段代码是我原来写的 ------------------------------------------------------------------- ...