本文共 2195 字,大约阅读时间需要 7 分钟。
10个Python使用习惯(第一期)
x = [1,3,5]if x: print('x is not empty')if not x: print('x is empty') 下面的写法不够Pythoner:
if x and len(x) > 0: print('x is not empty')if x is None or len(x) == 0: print('x is empty') x = [1,3,5]for i, e in enumerate(x, 10): print(i, e)
下面的写法不够Pythoner:
i = 0while i < len(x): print(i+10, x[i]) i += 1
x = 'zen_of_python'if 'zen' in x: print('zen is in') find返回值与-1判断不够Pythoner:
if x.find('zen') != -1: print('zen is in') keys = ['a', 'b', 'c']values = [1,3,5]for k, v in zip(keys, values): print(k, v)
下面的写法不够Pythoner:
d = {}i = 0for k in keys: print(k, values[i]) i += 1 print('''"Oh no!" He exclaimed. "It's the blemange!"''') 下面的写法太不Python风格:
print('"Oh no!" He exclaimed. \n+ '\n\t\t\t\t"It's the blemange!"') a, b = 1,3a, b = b, a
不要再用临时变量tmp,这不符合Python习惯:
tmp = aa = bb = tmp
chars = ['P','y','t','h','o','n']name = ''.join(chars)print(name)
下面的写法不够Pythoner:
name = ''for c in chars: name += cprint(name)
data = [1,2,3,5,8]result = [i*2 for i in data if i % 2 == 1]print(result) #[2,6,10]
下面的写法不够Pythoner:
results = []for e in data: if e % 2 == 1: results.append(e*2)print(results)
keys = ['a', 'b', 'c']values = [1,3,5]d = {k:v for k,v in zip(keys, values)}print(d) 下面的写法不太Pythoner:
d = {}for k, v in zip(keys, values): d[k] = vprint(d) def mymain(): print('Doing something in module', __name__)if __name__ == '__main__': print('Executed from command line') mymain() 如果脚本命名为MyModule,不管在vscode还是pycharm直接启动,都会打印:
Executed from command lineDoing something in module __main__
但如果import MyModule时,没有这行代码,直接会打印:
In [2]: import MyModuleExecuted from command lineDoing something in module MyModule
只有在有主句时,导入后才符合预期:
In [6]: import MyModuleIn [7]: MyModule.mymain()Doing something in module MyModule
以上就是10个Python使用习惯(第一期)的整理,希望对你有帮助!
转载地址:http://esafk.baihongyu.com/