1. python输出的数字之间会自动空格
2. 当输出带有end时不会换行print(a,b,end = ' ')
3. str.strip() : 去除字符串两边的空格 str.lstrip() : 去除字符串左边的空格 str.rstrip() : 去除字符串右边的空格
4. map()映射函数 a,b = map(int, input().strip().split())
5. 生成m*n二维数组alist = [[[] for j in range(n)] for i in range(m)]
6. 控制任意输入停止,
①异常抓取
import sys
line = sys.stdin.readline()
if not line
②s = input(); if not s
7. 对于输入任意个值建立列表 Ants = [int(i) for i in input().split()]
8.字符串格式化函数format()对于字符串处理时有很大用处,见例题1463-Sine之舞
9.字符串转化为小写lower(),大写upper()
10.删除元素remove()删除首次出现 del(A[i])按索引删除 pop()按索引删除 三种方法数组自动缩小
11. 格式控制占据固定宽度“{:>6}”.format(num) #num共占据6个宽度
print('%-8d' % a, end='') #a占8位,左对齐
12.互素math库gcd
13.按16进制读入整数s = int(input(),16),将十进制以不同进制输出,也可以按照任意进制读取
a = format(s,'x').upper()16进制 b = format(s,'o')8进制
十进制转其他进制bin(10) , oct(10) , hex(10)
14. 元素全排列 from itertools import permutations 返回值为迭代器,以abc为例,结果
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
15.集合的交 & 并 | 差 -
16. 字典更新方式A.update({A:B})
17. 多重排序result.sort(key = lambda x:(x[2],x[3]))
17. 引入无穷大 from cmath import inf
18. 两个矩阵相乘
C = [[sum(a*b for a,b in zip(row,col)) for col in zip(*B)] for row in A]
19.同时对字典的键和值排序A = sorted(A.items(),key = lambda x:(-x[1],x[0])) 按值的降序,键的升序排序
20.对字典进行更新A.update({n:A.get(n,0)+1})
21. 将小数转化为分数 from fractions import Fraction print(Fraction(0.75))
22.简单文件读取操作
with open('/path/filename','r') as f: (这里是‘/’,不是‘\’)
lines = f.readlines() #按行读取
#content = f.read() #读取所有内容
for line in lines:
print(line.strip())
with open('/path/filename','w') as f:
f.write('内容')
23. 高精度阶乘计算 from math import factorial
print(factorial(int(input().strip()))) #计算n!
24. R = max(A,key = A.count) #找出A中出现次数最多的元素,若有多个结果,则输出最先出现的
25. 将数字或数字字符串转化为单个数字的列表num = list(map(int,str(num)))
26.异或^
27.利用format转化为9位2进制数,不够补零s = list(map(int,'{:09b}'.format(s)))
28.调用递归时不要轻易使用与或非,因为其有短路特性
29.矩阵存储Matrix = [[int(j) for j in input().strip().split()] for i in range(n)]
30. bfs建立一个队列,利用循环。此外,建立一个状态数组,防止重复。