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:在函数内部,针对参数使用 赋值语句,会不会影响调用函数时传递的 实参变量? —— 不会! 无论传递的参数是 可变 还是 不可变 只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量 ...
随机推荐
- ZR#957
ZR#957 解法: 首先 $ T $ 必须得要是 $ S $ 的子序列,不然不存在好的下标序列,因此一定无解. 考虑判断一个串 $ T $ 是不是 $ S $ 子序列的贪心做法:每次从没有匹配的位置 ...
- wx.navigateTo的url不生效的问题
比如我要要从index页面跳转到logs. 在跳转的时候应该用switchTab,而不是wx.navigateTo 看api这句话 https://developers.weixin.qq.com/m ...
- 使用vscode快速建立vue模板
当我们希望每次新建.vue文件后,vscode能够根据配置,自动生成我们想要的内容. 打开vscode编辑器,依次选择“文件 -> 首选项 -> 用户代码片段”,此时,会弹出一个搜索框,我 ...
- Arts打卡第6周
Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...
- 2018-2019-2 《网络对抗技术》Exp9 Web安全基础 20165114
Exp9 Web安全基础 目录 一.实验内容 二.基础问题回答 (1)SQL注入攻击原理,如何防御 (2)XSS攻击的原理,如何防御 (3)CSRF攻击原理,如何防御 三.实践过程记录 3.1 注入缺 ...
- arcgis python 表属性转html
import arcpy import sys import string import os tablePath = arcpy.GetParameterAsText(0) filePath = a ...
- iframe窗口嵌套,子窗口跳转重叠在父窗口的问题
window.top //最顶层窗口 window.self //当前窗口 window.parent //父级窗口 "window.location.href"."lo ...
- hadoop 2.7.3伪分布式环境运行官方wordcount
hadoop 2.7.3伪分布式模式运行wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次以伪分布式模式来运行w ...
- linux物理内存与虚拟内存
http://www.360doc.com/content/14/0123/14/14450281_347336709.shtml 1.查看内存占用情况 $ free -m -h total used ...
- VUE el-input正则验证
①只能输入大于0的整数 check(value) { let reg = /^[-]\d*$/; var _this = this; if (value) { if (new RegExp(reg). ...