python 考试补缺
十六进制:
>>> a=100 >>> hex(a) '0x64'
八进制:
>>> a=100 >>> oct(a) '0o144'
二进制:
>>> a=100 >>> bin(a) '0b1100100'
ord()函数
Return the Unicode code point for a one-character string
>>> ord('A') 65 >>> ord('Z') 90 >>> ord('a') 97 >>> ord('z') 122 >>> ord('1') 49 >>> ord('9') 57
集合的并集 |,差集 -,交集 &,对称差集 ^
>>> s1={1,2,3} >>> s2={2,3,4} >>> s1-s2 {1} >>> s1|s2 {1, 2, 3, 4} >>> s1&s2 {2, 3} >>> s1^s2 {1, 4} >>>
format函数,保留小数有效位数。
[ : .2f ] 保留两位小数。
>>> a=3.141592653 >>> print('圆周率:{:.3f}'.format(a)) 圆周率:3.142
def foo(x,lst=[]): lst.append(x) return lst res1=foo(1) res2=foo(2,[]) res3=foo(3) print('res1:',res1) print('res2:',res2) print('res3:',res3)
输出:
res1: [1, 3] #在这里考察了,默认参数如果是可变类型的一个陷阱。 res2: [2] #还尽管前后两次赋值,但是res1和res3实际上指向了同一个内存地址,所以毫无疑问,它们的值必然是相等的。 res3: [1, 3] #注意,变量名的赋值,都是指向同一个内存地址,本质上没有什么区别。养成这样一种习惯,尽管用的是变量名,但是看到的确实内存中的地址。
d=dict(x=1,X=2,y=3,z=4,A=1),将字典中,大写都变为小写,小写相同的合并。
dd={} for key in d: dd[key.lower()]=d.get(key.lower(),0)+d.get(key.upper(),0) print(dd)
还可以写成集合推导式
dd={key.lower():d.get(key.lower(),0)+d.get(key.upper(),0) for key in d } #字典可以通过key值修改,通过key值覆盖相同的key值之前的数据。