一、基础
1. #!/usr/bin/python
# -*- coding: UTF-8 -*-
2.以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
3.number
创建number对象: var1 = 1
删除number对象: del var1
3. 字符串:
1. ① 截取字符串:变量 [头下标:尾下标]
Python字符串的截取使用切片
②加号(+)是字符串连接运算符,星号(*)是重复操作
下标可以为空表示取到头或尾
2. replace 产生新数组
3. strip()用于移除字符串头尾指定的字符(默认为空格或换行符)
4.列表 list
① 截取列表:变量 [头下标:尾下标]
② 加号(+)是字符串连接运算符,星号(*)是重复操作
下标可以为空表示取到头或尾
③ 追加元素到末尾
变量.append(‘a’)
④ 把元素插入到指定的位置,比如索引号为1的位置
变量.insert(1,’a’)
⑤ 删除list末尾的元素
变量.pop()
⑥ list的长度: len(list)
5.元组 tuple
① 因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
② 元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
③ 只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
Demo1:>>> t = (1,)
>>> t
(1,)
Demo2:>>> t = (1)
>>> t
(1)
二、条件判断
1.if 条件1:
执行语句
elif 条件2:
执行语句
else:
执行语句
2.if x:
print(‘只要x是非零数值、非空字符串、非空list等,为True,否则为False’)
注:if elif else 后的冒号,执行语句的缩进统一
三、循环
1. for...in
注:缩进和冒号
range() 生成一个整数序列
四、字典 dict
使用键-值(key-value)存储
1.
不会随着字典大小的增加而变慢。
-
- 判断key是否存在
2.删除key
d.pop(‘Thomas’)
3.
五、set
1.是一组key的集合,但不存储value,没有重复的key
要创建一个set,需要提供一个list作为输入的集合
2. 方法:
(1)添加元素 s.add(key)
(2)删除元素 s.remove(key)
(3)交集 s1 & s2
(4)并集 s1 | s2
六、时间和日期
1.time.time() 获取当前时间戳;
使用时需要引入time模块 import time;
2.获取当前时间
localtime = time.localtime(time.time())
3.获取格式化时间
七、函数
Demo
def printme( str ):"打印任何传入的字符串"
print str;
return;
printme(“hello”);
2. try except
try 子句先执行,没有异常执行else,否则执行except
八、切片
取list 或 tuple的部分元素
Demo1:L[0:3] 从索引为0开始取到索引为3,但不包括索引3
索引为0时可省略0即:list[:3]
Demo2: L[-1] 取倒数第一个
Demo3:L[-10] 取后10个数
Demo4:L[::5] 所有数,每5个取一个
Demo5:L[:10:2] 前10个数,每两个取一个
Demo6:L[:] 复制一个list
九、迭代 for…in…
1.迭代list
对list实现下标循环(使用Python内置的enumerate函数)
Demo: for i, value in enumerate([‘A’,’B’,’C’]):
print(i,value)
结果:0 A
1 B
2 C
可以在for循环中同时迭代索引和元素本身
2.迭代tuple
3.迭代dict
① for key in d: 迭代key
② for value in d.values(): 迭代value
③ for k,v in d.items(): 同时迭代key和value
- 迭代字符串
- 迭代生成器generator
十、判断一个对象是可迭代对象
十一、列表生成式
十二、生成器generator
一边循环一边计算的机制,不必创建完整的list,从而节省大量的空间。
- 生成一个generator
- 把一个列表生成式的[]变成()
>>> L=[x*x for x in range(10)]
>>> L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g=(x*x for x in range(10))
>>> g
<generator object <genexpr> at 0x1022ef630>
- 获取generator的每个元素
循环
十三、迭代器
十四、map
接收一个函数和一个序列
十五、reduce
十六、filter
接收一个函数和一个序列
Demo:筛选不为空的字符串
def not_empty(s):
return s and s.srtip()
list(filter(not_empty,[‘A’,None,’B’,’’,’C’]))
#结果:[‘A’,’B’,’C’]
十七、sorted
- 对list进行排序
- >>> sorted([2,1,3,-4])
[-4,1,2,3]
2. 通过key值实现自定义排序
>>> sorted([2,1,3,-4],key=abs)
[1,2,3,4]
- 忽略大小写,按照字母排序
>>> sorted([‘bob’,’app’,’zoe’],key=str.lower)
[‘apple’,’bob’,’zoe’]
- 反向排序 传入参数reverse=True
>>> sorted([‘bob’,’app’,’zoe’],key=str.lower,reverse=True)
[’zoe’,‘bob’,’app’]
十八、偏函数
functools.partial把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单