Python 是一门风行且利用宽泛的通用编程语言,其利用包含数据迷信、机器学习、科学计算等畛域,以及后端 Web 开发、挪动和桌面应用程序等方面。许多出名的公司都应用 Python,如 Google、Dropbox、Facebook、Mozilla、IBM、Quora、Amazon、Spotify、NASA、Netflix、Reddit 等。
Python 是收费且开源的,与它无关的大多数产品也都是。此外,它领有宏大、专一且友善的编程者和使用者社区。
它的语法设计指标就是简略、易读且优雅。
本文将向你展现 20 条十分实用的 Python 应用技巧。
1
Python 之禅
Python 之禅(又名 PEP20)是由 Tim Peters 编写的一小段文字,文中展现了设计和应用 Python 的领导准则。你能够在 Python 网站上找到这段文字,也能够在控制台或 Jupyter notebook 中通过一条语句来显示这段话。
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
2
链式赋值
如果须要让多个变量援用同一个对象,则能够应用链式赋值:
>>> x = y = z = 2
>>> x, y, z
(2, 2, 2)
十分有逻辑且优雅,对吧?
3
链式比拟
多个比拟语句也能够合成一个 Python 表达式,只需将多个比拟运算符连起来即可。上面的表达式只有在所有比拟都成立时返回 True,否则返回 False:
>>> x = 5
>>> 2 < x ≤ 8
True
>>> 6 < x ≤ 8
False
这个表达式相当于 (2 < x) 且 (x ≤ 8) 且 (x ≤ 8),但更为紧凑,而且只需执行一次 x 求值。
如下写法也是正确的:
>>> 2 < x > 4
True
甚至能够将多个比拟连起来:
>>> x = 2
>>> y = 8
>>> 0 < x < 4 < y < 16
True
4
多重赋值
你能够应用元组解包,在一条语句中给多个变量赋值:
>>> x, y, z = 2, 4, 8
>>> x
2
>>> y
4
>>> z
8
留神第一条语句中的 2, 4, 8 相当于一个元组(2, 4, 8)。
5
更高级的多重赋值
Python 的多重赋值远不止于一般赋值。赋值左右两侧的元素数量甚至能够不一样:
>>> x, *y, z = 2, 4, 8, 16
>>> x
2
>>> y
[4, 8]
>>> z
16
在这段代码中,x 对应于第一个值 2,因为 2 是首先呈现的。z 是最初一个,所以取最初一个值 8。y 以列表模式取两头的所有值,因为它带有星号(y*)。
6
交变量
利用多重赋值能够准确、优雅地替换任何两个变量,而且无需引入第三个变量:
>>> x, y = 2, 8
>>> x
2
>>> y
8
>>> x, y = y, x
>>> x
8
>>> y 2
7
合并字典
合并两个字典的办法之一就是将它们解包到一个新的字典中:
>>> x = {'u': 1}
>>> y = {'v': 2}
>>> z = {**x, **y, 'w': 4}
>>> z
{'u': 1, 'v': 2, 'w': 4}
8
连贯字符串
如果须要连贯多个字符串,每个字符串之间应用同一个字符或同一组字符来连贯,则能够应用 str.join 办法:
>>> x = ['u', 'v', 'w']
>>> y = '-*-'.join(x)
>>> y'u-*-v-*-w'
9
高级遍历
如果须要遍历一个序列,同时还须要每个元素和相应的索引,则能够应用 enumerate:
>>> for i, item in enumerate(['u', 'v', 'w']):
... print('index:', i, 'element:', item)
...
index: 0 element: u
index: 1 element: v
index: 2 element: w
每次遍历你都会取得一个元组,其中包含索引值和对应的元素。
10
反向遍历
如果你须要反向遍历一个序列,则能够应用 reversed:
>>> for item in reversed(['u', 'v', 'w']):
... print(item)
...
w
v
u