Bad
tmp = aa = bb = tmp
Pythonic
a,b = b,a02. 列表推导
Bad
my_List = []for i in range(10): my_List.append(i*2)
Pythonic
my_List = [i*2 for i in range(10)]03. 单行表达式
虽然列表推导式由于其简洁性及表达性,被广受推崇。但是有许多可以写成单行的表达式,并不是好的做法。
Bad
print 'one'; print 'two'if x == 1: print 'one'ifand : # do something
Pythonic
print 'one'print 'two'if x == 1: print 'one'cond1 =04. 带索引遍历cond2 = if cond1 and cond2: # do something
Bad
for i in range(len(my_List)): print(i,"-->",my_List[i])
Pythonic
for i,item in enumerate(my_List): print(i,item)05. 序列解包
Pythonic
a,*rest = [1,2,3]# a = 1,rest = [2,3]a,*mIDdle,c = [1,3,4]# a = 1,mIDdle = [2,3],c = 406. 字符串拼接
Bad
letters = ['s','p','a','m']s=""for let in letters: s += let
Pythonic
letters = ['s','m']word = ''.join(letters)07. 真假判断
Bad
if attr == True: print 'True!'if attr == None: print 'attr is None!'
Pythonic
if attr: print 'attr is truthy!'if not attr: print 'attr is falsey!'if attr is None: print 'attr is None!'08. 访问字典元素
Bad
d = {'hello': 'world'}if d.has_key('hello'): print d['hello'] # prints 'world'else: print 'default_value'
Pythonic
d = {'hello': 'world'}print d.get('hello','default_value') # prints 'world'print d.get('thingy','default_value') # prints 'default_value'# Or:if 'hello' in d: print d['hello']09. *** 作列表
Bad
a = [3,4,5]b = []for i in a: if i > 4: b.append(i)
Pythonic
a = [3,5]b = [i for i in a if i > 4]# Or:b = filter(lambda x: x > 4,a)
Bad
a = [3,5]for i in range(len(a)): a[i] += 3
Pythonic
a = [3,5]a = [i + 3 for i in a]# Or:a = map(lambda i: i + 3,a)10. 文件读取
Bad
f = open('file.txt')a = f.read()print af.close()
Pythonic
with open('file.txt') as f: for line in f: print line11. 代码续行
Bad
my_very_big_string = """For a long time I used to go to bed early. Sometimes,when I had put out my candle,my eyes would close so quickly that I had not even time to say “I’m going to sleep.”"""from some.deep.module.insIDe.a.module @R_404_5565@ a_nice_function,another_nice_function,yet_another_nice_function
Pythonic
my_very_big_string = ( "For a long time I used to go to bed early. Sometimes," "when I had put out my candle,my eyes would close so quickly " "that I had not even time to say “I’m going to sleep.”")from some.deep.module.insIDe.a.module @R_404_5565@ ( a_nice_function,yet_another_nice_function)12. 显式代码
Bad
def make_complex(*args): x,y = args return dict(**locals())
Pythonic
def make_complex(x,y): return {'x': x,'y': y}13. 使用占位符
Pythonic
filename = 'foobar.txt'basename,_,ext = filename.rpartition('.')14. 链式比较
Bad
if age > 18 and age < 60: print("young man")
Pythonic
if 18 < age < 60: print("young man")
理解了链式比较 *** 作,那么你应该知道为什么下面这行代码输出的结果是 False
>>> False == False == True False15. 三目运算
这个保留意见。随使用习惯就好。
Bad
if a > 2: b = 2else: b = 1#b = 2
Pythonic
a = 3 b = 2 if a > 2 else 1#b = 2总结
以上是内存溢出为你收集整理的这就是菜鸟和高手的区别!完全不同的两个世界!Python必然会爆火全部内容,希望文章能够帮你解决这就是菜鸟和高手的区别!完全不同的两个世界!Python必然会爆火所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)