近期几年时间,国内的Python研发者越来越多,然则非常多研发者都是从其他编程语言转换阵营来到Python的。正是由于这般的原由,非常多Python研发者的代码中都保存了其他语言的编程习惯,这般的代码看起来就显出很不专业,非常的不”Pythonic“。
其实Python语言有非常多专属的“编程惯例”,“惯例”这个词根据词典上的解释便是“习惯的做法,常规的办法,一贯的做法”。做为一个Python研发者,尤其是”跨界程序员“,倘若能够把握这些惯例,就能够写出“Pythonic”的代码。
技巧1:让代码既能够被导入又能够被执行。
if __name__ == __main__:
技巧2:用下面的方式判断规律“真”或“假”。
if x:
if not x:
“Pythonic”的代码:
name = jackfrued
fruits = [apple, orange, grape]
owners = {1001: 骆昊, 1002: 王大锤}
if name and fruits and owners:
print(I love fruits!)
“跨界程序员”的代码:
name = jackfrued
fruits = [apple, orange, grape]
owners = {1001: 骆昊, 1002: 王大锤}
if name != and len(fruits) > 0 and owners != {}:
print(I love fruits!)
技巧3:善于运用in运算符。
if x in items:
for x in items:
“Pythonic”的代码:
name = Hao LUO
if L in name:
print(The name has an L in it.)
“跨界程序员”的代码:
name = Hao LUO
if name.find(L) != -1:
print(This name has an L in it!)
技巧4:不运用临时变量交换两个值。
a, b = b, a
技巧5:用序列构建字符串。
“Pythonic”的代码:
chars = [j, a, c, k, f, r, u, e, d]
name = .join(chars)
print(name)
“跨界程序员”的代码:
chars = [j, a, c, k, f, r, u, e, d]
name =
for char in chars:
name += char
print(name)
技巧6:EAFP(Easier to Ask Forgiveness than Permission)优于LBYL(Look Before You Leap)。
“Pythonic”的代码:
d = {x: 5}
try:
value = int(d[x])
print(value)
except (KeyError, TypeError, ValueError):
value = None
“跨界程序员”的代码:
d = {x: 5}
if x in d and isinstance(d[x], str) and d[x].isdigit():
value = int(d[x])
print(value)
else:
value = None
技巧7:运用enumerate进行迭代。
“Pythonic”的代码:
fruits = [orange, grape, pitaya, blueberry]
for index, fruit in enumerate(fruits):
print(index, :, fruit)
“跨界程序员”的代码:
fruits = [orange, grape, pitaya, blueberry]
index = 0
for fruit in fruits:
print(index, :, fruit)
index += 1
技巧8:用生成式生成列表、集合和字典。
“Pythonic”的代码:
data = [7, 20, 3, 15, 11]
result = [num * 3 for num in data if num > 10]
print(result)
“跨界程序员”的代码:
data = [7, 20, 3, 15, 11]
result = []
for i in data:
if i > 10:
result.append(i * 3)
print(result)
技巧9:用zip组合键和值来创建字典。
“Pythonic”的代码:
keys = [1001, 1002, 1003]
values = [骆昊, 王大锤, 白元芳]
d = dict(zip(keys, values))
print(d)
“跨界程序员”的代码:
keys = [1001, 1002, 1003]
values = [骆昊, 王大锤, 白元芳]
d = {}
for i, key in enumerate(keys):
d[key] = values[i]
print(d)
讲到这儿,大众能够把自己的代码对号入座一下,瞧瞧自己写的是“Pythonic”的还是“跨界程序员”代码。如果想让自己的代码更加专业,必定要先从写出“Pythonic”的代码起始。后面我还会继续为大众分享编写Python代码的技巧,把握这些技巧肯定能让你的Python代码帅到没伴侣的。
返回外链论坛:www.fok120.com,查看更加多
责任编辑:网友投稿
|