注:这里忽略了生成器,装饰器,交换变量等熟知技巧
1. 函数参数unpack
老生常谈的了:
12345678
|
def foo(x, y): print x, y alist = [1, 2]adict = {\’x\’: 1, \’y\’: 2} foo(*alist) # 1, 2foo(**adict) # 1, 2 |
2. 链式比较操作符
12345
|
>>> x = 3>>> 1 < x < 5True>>> 4 > x >=3True |
3. 注意函数的默认参数
12345678
|
>>> def foo(x=[]):... x.append(1)... print x...>>> foo()[1]>>> foo()[1, 1] |
更安全的做法:
1234567891011
|
>>> def foo(x=None):... if x is None:... x = []... x.append(1)... print x...>>> foo()[1]>>> foo()[1]>>> |
4. 字典有个get()方法
dct.get(key[,default_value]), 当字典dct中找不到key时,get就会返回default_value
1
|
sum[value] = sum.get(value, 0) + 1 |
5. 带关键字的格式化
1234
|
>>> print \”Hello %(name)s !\” % {\’name\’: \’James\’}Hello James !>>> print \”I am years %(age)i years old\” % {\’age\’: 18}I am years 18 years old |
更新些的格式化:
12
|
>>> print \”Hello {name} !\”.formatython-hidden-features.html\”>hit9
注:这里忽略了生成器,装饰器,交换变量等熟知技巧
1. 函数参数unpack
老生常谈的了:
12345678
|
def foo(x, y): print x, y alist = [1, 2]adict = {\’x\’: 1, \’y\’: 2} foo(*alist) # 1, 2foo(**adict) # 1, 2 |
2. 链式比较操作符
12345
|
>>> x = 3>>> 1 < x < 5True>>> 4 > x >=3True |
3. 注意函数的默认参数
12345678
|
>>> def foo(x=[]):... x.append(1)... print x...>>> foo()[1]>>> foo()[1, 1] |
更安全的做法:
1234567891011
|
>>> def foo(x=None):... if x is None:... x = []... x.append(1)... print x...>>> foo()[1]>>> foo()[1]>>> |
4. 字典有个get()方法
dct.get(key[,default_value]), 当字典dct中找不到key时,get就会返回default_value
1
|
sum[value] = sum.get(value, 0) + 1 |
5. 带关键字的格式化
1234
|
>>> print \”Hello %(name)s !\” % {\’name\’: \’James\’}Hello James !>>> print \”I am years %(age)i years old\” % {\’age\’: 18}I am years 18 years old |
更新些的格式化:
12
|
>>> print \”Hello {name} !\”.formatsy\”>(name=\”James\”) |
|