abs(x) | 函数返回x的绝对值 | abs(-45) # 45 |
all(iterable) | 判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。(元素除了是 0、空、FALSE 外都算 TRUE) | all(['a', 'b', 'c', 'd']) # True |
any(iterable) | 判断给定的可迭代参数 iterable 中的所有元素至少一个为True或非零,如果是返回 True,否则返回 False。(元素除了是 0、空、FALSE 外都算 TRUE) | any(['a', 'b', 'c', 'd']) #True |
chr(integer) unichr(i) | 返回字符编码在[0 255]中对应的字符。 | print(chr(0x30), chr(0x31), chr(0x61)) # 十六进制:0 1 a |
compile(source, filename, mode[, flags[, dont_inherit]]) | 将一个字符串编译为字节代码:
| str = "for i in range(0,10): print(i)"
str = "3 * 4 + 5" |
complex([real[,image]]) | 创建一个值为 real + imag * j 的复数或者转化一个字符串为复数。如果第一个参数为字符串,则不需要指定第二个参数 | complex(1, 2) #(1 + 2j) complex(1) # (1 + 0j) complex("1") # (1 + 0j) # 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 >>> complex("1+2j") # (1 + 2j) |
dict(**kwarg) | 用于创建一个字典 | dict(a='a', b='b', t='t') # {'a': 'a', 'b': 'b', 't': 't'}
|
divmod(x, y) | 返回一个包含商和余数的元组(a // b, a % b) | divmod(7, 2) #(3, 1) |
enumerate(sequence,[start=0]) | 将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标 | list(enumerate(seasons, start=1)) |
eval(expression) | 执行一个字符串表达式,并返回表达式的值 | x = 7 |
exec | 执行储存在字符串或文件中的Python语句,相比于 eval可以执行更复杂的 Python 代码。 | x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func() |
filter(f, [x1, x2, x3, x4]) | 接收一个函数和一个序列,把传入的函数依次作用于每个序列中元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 | def is_odd(n): list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])) # 一个list中,删掉偶数,只保留奇数
def not_empty(s): |
hash(obj) | 用于获取取一个对象(字符串或者数值等)的哈希值 | hash('test') # 字符串:2314058222102390712 |
hex(x) | 将10进制整数转换成16进制,以字符串形式表示 | hex(255) #'0xff' |
id(obj) | 根据object返回唯一的整数标识 | a=1 |
input(prompt) | 从标准输入返回字符串 | |
isinstance(obj, cls) | 判断一个对象是否是一个已知的类型,类似 type() isinstance() 与 type() 区别:
| isinstance (2,int) #True |
map(f, iter1, iter2, ...) | 根据提供的函数对指定序列做映射。返回包含每次 function 函数返回值的新列表 | map(lambda x: x ** 2, [1, 2, 3, 4, 5]) #[1, 4, 9, 16, 25] |
iter();next() | 返回迭代器的下一个项目 | it = iter([1, 2, 3, 4, 5]) |
oct(x) | 将一个整数转换成8进制字符串。 | oct(10) #'012' |
ord(char) | 它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值 | ord('a') #97 |
pow(x, y) | 返回x的y次方的值:pow() 参数作为整型,而 math 模块则会把参数转换为 float | math.pow(100, 2) #10000.0 pow(100, 2) #10000 |
print(*object,sep=' ',end='\n',file=sys.stdout)
|
| print("aaa""bbb") # aaabbb print("aaa","bbb") # aaa bbb
print("www","baidu","com",sep=".") #www.baidu.com |
range(start,stop[,step]) | 创建一个整数列表 | range(0, 30, 5) # 步长为 5 [0, 5, 10, 15, 20, 25] |
reduce(f, iterable[,initializer]) | 函数会对参数序列中元素进行累积,f(f(f(x1, x2), x3), x4) from functools import reduce | def add(x, y) : return x + y reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5 15
reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数 15 |
reload(module) | 重新载入之前载入的模块:原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块; from imp import reload | import sys sys.getdefaultencoding() # 当前默认编码 'ascii' reload(sys) sys.setdefaultencoding('utf8') # 设置编码 sys.getdefaultencoding() # 'utf8' |
list.reverse() | 用于反向列表中元素,并改变实例本身 | a = [1,2,3] a.reverse() a # [3,2,1] |
reversed(sequence) | 返回序列的反序迭代器,一般用在for循环 | reversed([1,2,3]) #<list_reverseiterator object >
for i in reversed([1,2,3]): print(i) # 3,2,1 |
round(x[,n]) | 返回浮点数x的四舍五入值 | round(80.23456,3) #80.235 round(100.000065,3) #100.0 |
sorted(iterable[,key[,reverse]]])
| 对所有可迭代的对象进行排序操作
| a = [5,7,6,3,4,1,2] b = sorted(a) # 保留原列表 a # [5, 7, 6, 3, 4, 1, 2] b #[1, 2, 3, 4, 5, 6, 7]
L=[('b',2),('a',1),('c',3),('d',4)] sorted(L, key=lambda x:x[1]) # 利用key [('a', 1), ('b', 2), ('c', 3), ('d', 4)] |
zip([iterable, ...]) | 将可迭代的对象作为参数,将对象中对应位置的元素打包成一个个元组,然后返回的是一个对象。如需展示列表,需手动 list() 转换。 | a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] zipped = zip(a,b) # 打包为元组的列表 [(1, 4), (2, 5), (3, 6)] zip(a,c) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)]
nums = ['flower','flow','flight'] ('f', 'f', 'f') |
open 文件操作
open(name[, mode[, buffering]])
- name : 一个包含了你要访问的文件名称的字符串值。
- mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
file 对象方法
-
file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。
-
file.readline():读取整行,包括 "\n" 字符。
-
file.readlines([size]) :返回包含size行的列表, size 未指定则返回全部行。
-
for line in f: print line :通过迭代器访问。
-
f.write("hello\n"):如果要写入字符串以外的数据,先将他转换为字符串。
-
f.tell():返回一个整数,表示当前文件指针的位置(就是到文件头的比特数)。
-
f.seek(偏移量,[起始位置]):设置文件当前位置
- 偏移量: 单位为比特,可正可负
- 起始位置: 0 - 文件头, 默认值; 1 - 当前位置; 2 - 文件尾
-
f.close() 关闭文件
format 格式化输出
format 函数可以接受不限个参数,位置可以不按顺序。
"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world'
"{0} {1}".format("hello", "world") # 设置指定位置 'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置 'world hello world'
也可以设置参数:
print("网站名:{name}, 地址 {url}".format(name="python教程", url="www.python.com"))
# 通过字典设置参数
site = {"name": "python教程", "url": "www.python.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['python教程', 'www.python.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
也可以向 str.format() 传入对象:
class AssignValue(object):
def __init__(self, value):
self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value)) # "0" 是可选的
# value 为: 6
数字格式化
1. {}操作符
print("{:.2f}".format(3.1415926)) #3.14
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) | 1011 11 13 b 0xb 0XB | 进制 |
- ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
- + 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
- b、d、o、x 分别是二进制、十进制、八进制、十六进制。
我们可以使用大括号 {} 来转义大括号
print ("{} 对应的位置是 {{0}}".format("python"))
# runoob 对应的位置是 {0}
2. % 操作符
%[(name)][flags][width].[precision]typecode
- (name) 为命名
- flags 可以有 +,-,' '或 0。+ 表示右对齐。- 表示左对齐。' ' 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0 表示使用 0 填充。
- width 表示显示宽度
- precision 表示小数点后精度
以下是类型码typecode:
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
print("%6.3f" % 2.3)# 2.300,2.300长度为5,故前面有一空格
print("%+10x" % 10)# +a,x 为表示 16 进制,显示宽度为 10,前面有 8 个空格
print("%-5x" % -10)# -a ,%-5x 负号为左对齐,显示宽度为 5,故 -a 后面有 3 个空格
List列表
list() 方法用于将元组转换为列表
添加元素 | list.append('ducati') # 添加 |
删除元素 | del list[0] # 删除 e = list.pop(0) # 删除 list.remove('ducati') # 删除 |
获取索引位置 | list.index('hello') # 0 |
反转排序 | cars.sort() # 永久性排序
sorted(cars) # 临时排序 reversed(cars) #临时反转 |
合并与复制 | list1.extend(list2) # 列表合并 list2= list1[:] # 列表复制 |
转为字符串 | number = [2,"hello",4,5] |
dict字典
get()函数
字典有一个get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。因为 picnicItems 字典中没有'egg'键,get()方法返回的默认值是 0
picnicItems = {'apples': 5, 'cups': 2}
'I am bringing ' + str(picnicItems.get('cups', 0)) + ' cups.' # 'I am bringing 2 cups.'
'I am bringing ' + str(picnicItems.get('eggs', 0)) + ' eggs.' # 'I am bringing 0 eggs.
字符计数器
word = 'brontosaurus'
d = dict()
for c in word:
d[c] = d.get(c,0)+1
print(d)
# {'a': 1, 'r': 2, 't': 1, 's': 2, 'b': 1, 'n': 1, 'o': 2, 'u': 2}
遍历字典
for key, value in user_0.items(): # 遍历字典
for key in user_0.keys(): # 遍历键
for key in sorted(user_0.keys()): # 按顺序遍历键
for value in user_0.values(): # 遍历值
字典排序
dic = {"apple":10,
"orange":20,
"banana":5,
"rotten tomato":1}
# x[0]:第一个元素,第二个元素:x[1]
print(sorted(dic.items(), key=lambda x:x[1]))
print(sorted(dic.items(), key=lambda x:x[0]))
print(sorted(dic, key=dic.get))
合并字典
d1 = {'a':1}
d2 = {'a':3,'b':2}
d3 = {**d1,**d2}
d4 = dict(d1.items()|d2.items())
d1.update(d2)
# {'b': 2, 'a': 3}
Set集合
集合运算
#交集
ret = x.intersection(y)
ret = x & y
# 并集
ret = x.union(y)
ret = x | y
# 差集
ret = x.difference(y)
ret = x - y