毫无疑问,python是一种、流行且容易理解的语言。
当然,有人说过:“没有最好,只有更好”,但Python最好🤪。
接下来,给大家分享10个最好的Python小技巧,让生活更加美好。
欢迎大家点赞、收藏,支持!
人生苦短,我用Python。即用Python,则学点小技巧! – 无名
1. 链式操作符
让我们模拟一个场景: 假设你在招聘机构工作,公司的HR给了一个任务,开发招聘系统,该系统可用于选择所有符合条件的候选人。
现在需要根据输入条件检索相关候选人。那么,最简单明了的想法是什么?可以根据if
条件进行判断筛选!。
candidateage = 30
candidate_exp = 5
candidate_salary_expectation = 95000
if candidateage > 18:
if candidate_exp >= 2:
if candidate_salary_expectation <= 100000:
print("Congrats ! You are Eligible for the job")
else:
print("Not! eligible")
上面的代码没有任何问题,但是其实可以使用链式操作的方式来完成。在一个语句中列出所有条件:
candiateage = 30
candidate_exp = 5
candidate_salary_expectation = 95000
## 精华在此
if candiateage > 18 and candidate_exp >= 2 and candidate_salary_expectation <= 100000:
print("Congrats ! You are Eligible for the job")
else:
print("Not! eligible")
2. 格式化大数字
如果让你阅读下面的数字,你能快速阅读和理解哪一个?
2456456987
3,456,986,784
几乎全部的人选第二个,因为这个数字更可读的。甚至小孩子都可以快速的读出:三十亿、四亿五千六百万、九十八万六千、七百八十四。
在python中,你可以在数字的任何位置加入下划线_
,它居然是可行的。
num = 2456456987
num2 = 3_456_986_784 # 魔幻的写法,魔幻的世界
sum = num + num2
print(f"{sum:,}") # 5,913,443,771
3.内联条件
根据特定条件去执行任务时:如果只有一条执行语句,则可以在一行中完成,这样更容易阅读。
x =5
if x==5: print("x equals 5") # 一行代码
for i in range(x+5): print(i) # 一行代码
甚至也可以在一行中完成:设置变量值。
传统代码:
condition = True
if condition:
x = 5
else:
x = 10
print(x) # 5
行内代码:
condition = True
x = 5 if condition else 10 # one line do it
print(x) # 5
更进一步,行内操作可以与 lambda
函数一起使用,产生更魔幻地现实世界:
check = lambda condition: 5 if condition else 10
print(check(True)) # 5
print(check(False)) # 10
4. 列表推导式
列表推导通常是一种更时尚、更有用的列表生成方法。
它们将帮助我们写更好且可读性高的代码。能用1行代码,为什么要用有3-4行代码呢?
与其创建一个空列表,然后在列表中添加元素,不如使用列表推导式来创建一个空列表并同时将元素添加到列表中。
语法:new_list = [expression for item in iterable (if conditional)]
例如:求平方
squares = [i*i for i in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
例如:求偶数的平方
squares = [i*i for i in range(10) if i%2==0]
print(squares) # [0, 4, 16, 36, 64]
5. F-字符串
F字符串随python3一起提供。它们非常简单易用,并且让代码更具可读性和可理解性。F-字符串 提供了一种简洁方便的方法来将python 表达式(如变量)嵌入字符串中,并可格式化。
让我们定义两个变量name
,age
并且要包含在print
语句中。
- 直接打印法:
name, age = "John", 23
print("Hey This is ",name,"and I am ",age)
- 字符串连接方法:
name, age = "John", 23
print("Hey This is "+name+" and I am "+str(age))
- 传统的格式化方法:
name, age = "John", 23
print("Hey This is {} and I am {}".format(name,age))
- F-字符串方法:
name, age = "John", 23
print(f"Hey This is {name} and I am {age}")
F-字符串方法也是可以格式化输出的,例如:{age:1.2f}\{age:1.2f\}{age:1.2f}, {age:03}\{age:03\}{age:03}你可以更改上面的代码,运行它,看看输出的结果。
name, age = "John", 23
# 现在开始怀疑世界,居然还可以这么用!
print(f"Hey This is {name} and I am {age: 1.2f}")
print(f"Hey This is {name} and I am {age: 03}")
6. enumerate枚举迭代
数一数 Python 的最佳特性,那么枚举enumerate
一定是名列前茅的。
它与循环相似,不同的是,同时提供循环对象和索引值。
语法:for index,value in enumerate(iterable): print(index,value)
通过一个例子来更好地理解它,我们需要将列表中所有值为偶数的位置替换为Even
,将所有值为奇数的位置替换为Odd
:
lst = [13,2,3,4,90]
for index,value in enumerate(lst):
if value%2==0:
lst[index] = "Even"
else:
lst[index] = "Odd"
print(lst) # ['Odd', 'Even', 'Odd', 'Even', 'Even']
当然结合列表推导 、if单行表达可以一行搞定:
lst = [13,2,3,4,90]
lst = ['Even' if value %2 == 0 else 'Odd' for index,value in enumerate(lst) ]
print(lst) # ['Odd', 'Even', 'Odd', 'Even', 'Even']
7. 参数拆包
这是很多开发者不知道的一个Python特性。Python允许简单直接的解压变量。
让我们考虑一个现实生活中的用例: 有一个列表data
其中包含有关不同人的信息,例如他们的姓名,年龄和电子邮件。现在需要将所有姓名,年龄和电子邮件分成单独的列表。
你可能会考虑使用一些空列表,然后相应地将数据附加到列表中;也可能直接赋值。但还有一个简单的一行代码执行此操作,这就是解包操作。
data = [['Abhay','Karl','Trey'],[20,26,30],['abhay@gmail.com','karl@gmail.com', 'Trey@qq.com']]
name,age,email = data #一行搞定
print(name) # ['Abhay', 'Karl', 'Trey']
print(age) # [20, 26, 30]
print(email) # ['abhay@gmail.com','karl@gmail.com', 'Trey@qq.com']
print(id(name), id(data[0])) # 1407917606400 1407917606400
name[1]= "KARL"
print(data[0]) # ['Abhay', 'KARL', 'Trey']
值得注意的是,解包操作是一个简单的指向操作。如果你需要得到新的列表,请使用列表的
copy()
方法。
8. 函数多值返回
def user_info():
name = 'Abhay'
age = 26
address = 'Bangalore'
return name, age, address
Name , Age , Address = user_info()
print(Name, Age, Address) # Abhay 26 Bangalore
9. 单行代码 和 大量的库
Python 的另外两大特点是 单行代码
和 大量的库
。
使用 单行代码
,只需一行代码即可完成一项任务,而无需编写 5 或 10 行代码,这将节省大量时间,毕竟头发有限!
另一方面,大量优质的第三方库库Package
。
部分人可能会认为始终需要编写自己的代码,但在我看来,如果可以仅用一行代码或一次导入完成某些任务,那么编写数千行代码的必要性是什么,我们不是应该以目的为导向么? 你可能不同意我的想法,但请记住:
“永远不要去记你可以查到的东西。” - 艾伯特·爱因斯汀
当然还有一个名人也说过:
“请学习牛顿,站在github的肩上编程!” - 鲁迅
10. 代码注释
注释对于编写更好的代码非常有用。它们可以帮助自己和队友更好地理解代码。注释显示了代码的流程。注释是开发者的长期投资。
一个好的开发者需要养成写注释的好习惯,才可能写出像pythontip这样有趣的站点。
“注释不仅可增加代码的行数,且背后体现了coder的价值观,比如在注释中偷偷添加吐槽,却无人知晓!” – 混子日
分享一个好的注释:
"""
Why i should need a job?
Why i shuold owner for company?
Why i can not do something for myself?
So, from Now! To be a onwer for yourself!
"""
# 产品要求3天内上线,开玩笑吗?
# 算了,直接来吧,前人挖坑,后人填坑
print("just do it!!!")
# 没有思路,写不下去,算了pythontip 上刷题吧!
小节
以上就是我们分享的10个实用的pyhton技巧,希望在未来或现在的编程路上对你有用!
欢迎大家点赞、收藏,支持!