# 加油加油加油
一.日期和时间:
from datetime import datetime, date, time
dt = datetime(2011, 10, 29, 20, 30, 21)
dt.day 日期
dt.minute 分钟
dt.strftime( '%m/%d/%Y %H:%M' )
strptime 方法可以将字符串转换成datetime对象
datetime.strptime('20091031', '%Y%m%d')
二.if、elif和else | for循环 | while循环 | pass
三.range(起点,终点,步长)
四.三元表达式
True-result if condition else false-expr
五.数据结构和序列
1.元组tuple
可以用索引访问,但是不能修改
如果元素是可变的,那可以通过多层索引修改
2.列表
list[ ] 把[ ]里的转换成列表
list(range(10)) 生成0-9的列表
添加元素
list.append(元素)
list.insert(索引,值)
删除元素
list.pop(索引)
list.remove(元素) # 去掉碰到的元素的第一个
串联和组合列表
用加号
list.extend('元素1','元素2',...) # 追加多个元素
排序
list.sort() list.sort(key=len)
a = sorted(list)
切片
list[start:stop] start/stop可省略
序列函数
for i,v in enumerate(list): i:索引,v:值
zip函数
两个不同长度的列表,将里面的值一一组合成元组,多个元组组合成列表
列表长度取决于最短的列表
reversed函数:就是取反 reversed(list)
3.字典dict
也叫哈希映射或关联数组
dict[key] = value # 可以赋值或读取
del dict[key] 删除字典元素
dict.pop(key) 也是删除字典元素,也可以赋值给别的变量
dict.keys() 获取全部key
dict.values() 获取全部values
将字典和字典融合 dict.update(dict1)
用序列创建字典
序列list1,list2,长度相等,数值可以一一对应
方法: dict(zip(list1,list2)) 先压缩再转成字典
默认值:
dict.get(key,default_value) # 获取key,如果没有返回默认值
设置默认值:setdefault(key,[])
设置默认字典:dict = defaultdict(list) 传递类型或函数
dict[key].append(元素)
4.集合
无序的,不可重复的,元素集合----是个字典
set(list):把列表元素去重,生成字典
集合和集合之间可以运算:集合a,b
a.union(b) 或者 a|b 合并
a.intersection(b) 或者 a&b 交集
5.列表\集合\字典推导式
[expr for val in collection if condition]
从集合里遍历值,如果条件成立的话,输出多个结果的列表expr
还可以嵌套列表推导式
六.函数
def 函数名():
内容
return 值 (如果没有返回值,则返回None)
如果返回多个值的话,调用函数的时候记得也赋值给多个变量名
a,b,c = f() 如果只赋值给一个的话,就会生成一个元组
七.匿名函数lambda
定义一个函数 appl...( 列表 , 函数 2)返回 函数 ( 函数的变量在列表里 )定义一个 : 列表apply( 列表 ,lambda x : x*2)例如:f = lambda x: x.max() - x.min()
八.错误和异常处理
try-except 错误 办法
九.文件和操作系统
打开文件 with open(path) as file:
检查文件的默认编码:sys.getdefaultcoding()
写入:write和writelines