最近几年时间,国内的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代码帅到没朋友的。
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓