python中的语法糖并不是糖果,而是指在python语法中有一些特殊写法可以简化我们的代码。

在python的语法中有哪些语法糖呢?以下给出常用的几个语法糖总结:

1. 交换变量

当我们要交换下方a,b的值时需要怎么做呢?

a = 1
b = 2

一般中规中矩的写法都是需要定义第三个变量c,做法如下:

c = a
a = b
b = c

但是在python中只需要一句话:

a, b = b, a

2. 判断变量

判断变量是否在某个范围内,例如a = 67,如何通过程序判断它是否在60与80之间呢?

一般的写法是:

if a >= 60 and a <= 80

在python中也可以将其简化:

if 60 <= a <= 80

3. 快速构造字符串

字符串的乘法可以帮助我们快速构造字符串。

如当我们需要通过60个“-”组成下划线时,就不必手敲60次,可以直接通过乘法帮助我们完成:

print('-' * 60)

同理,如果想要组成30个“*”就写成:

'@' * 30

以后当我们需要快速构造多个相同字符时就可以优先想到使用字符串的乘法来完成!

4. 列表拼接

a = [1, 2, 3]
b = [4, 5, 6]

如何实现将a,b两个列表拼接在一起呢?

我们当然可以利用for循环一个一个添加,但是Python为我们提供了一个通过加法拼接字符串的语法糖。

a + b 

5. 列表切片

a = [1, 2, 3, 4, 5]

如何取出a正数第二个与倒数第三个元素之间的数字组成新列表呢?

可以写成这样:

a[2 : -2]

如果是取前三个数呢?

a[3:]

取后三个数同理:

a[:-3]

6. 打包与解包

通过元祖可以帮助我们表示三维空间的坐标,例如:

a = (1, 2, 3)

如果希望获得每个坐标的分量,传统的做法是:

x = a[0]
y = a[1]
z = a[2]

但是在python中可以这样一句搞定(解包):

x, y, z = a

python会将a解包,然后按照顺序**分别赋值**给x, y, z。

反过来,如果要将x, y, z的值打包成一个元祖b,同理:

b = (x, y, z)

7. 列表推导式

a = [1, 2, 3]
b = []

如果需要将a中的每一个数都加上100之后组成新的列表b,在python中可以这样操作:

b = [ i + 100   for i in a]

不仅限于列表,字典集合同样适用。

8. with语句

文件中,可以通过with语句防止我们忘记写关闭文件后产生的麻烦。

with open('test.txt', 'r') as f:
	data = f.read()