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值之前的数据。

 

  

 

posted @ 2017-08-31 17:05  骑者赶路  阅读(228)  评论(0编辑  收藏  举报