经验分享 – Python中的语法糖甜不甜?

“阅读本文大概需要4分钟。

你好,我是测试蔡坨坨。

今天,我们来盘点一下Python中的那些语法糖。

什么是语法糖?

语法糖(Syntactic Sugar),也被译为糖衣语法,是由英国计算机科学家彼得·约翰·兰大(Peter J.Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说,使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

语法糖不是糖,而是编程语言中某些特殊的写法

作为最体贴程序员的编程语言——Python,就有很多语法糖。

有了这些特殊写法,可以让我们的代码写起来更加简洁,更加容易理解,使得程序员在撸代码的时候更加happy,因此叫做语法糖。

交换两个变量的值

交换两个变量的值,这个需求相信每个学编程的人都遇到过,例如:有两个变量a、b,要求交换a、b的值

# 先定义两个变量
a = 1
b = 2
print('交换前:', a, b) # 交换前:1 2

# 交换a、b的值
# 传统写法
# 先引入一个变量c,用c作为中介来倒腾,需要三句代码
c = a
a = b
b = c
print('交换后:', a, b) # 交换后:2 1

# 语法糖写法
a1 = "蔡"
b1 = "坨坨"
print(a1, b1) # 蔡 坨坨
# 只需下面一句代码
a1, b1 = b1, a1
print(a1, b1) # 坨坨 蔡

用下划线分割数字

当我们在代码中定义一个很大的数值时,不容易直接看出具体是多少,数起来实在是令人眼瞎。

例如:定义一个值为100亿的数字

# 传统写法
number1 = 10000000000
# 改进版写法
number2 = 100 * 10000 * 10000
# 语法糖写法
number3 = 100_0000_0000
print(number1)
print(number2)
print(number3)

判断变量范围

# 例如:判断绩效等级
# A(4.5,5]
# B(4,4.5]
# C(3.5,4]
# 传统写法
score = 4.6
if score > 4.5 and score <= 5:
    print('A')
elif score > 4 and score <= 4.5:
    print('B')
elif score > 3.5 and score <= 4:
    print('C')

# 语法糖
if 4.5 < score <= 5:
    print('A')

字符乘法

有时为了方便分割输出内容,我们会敲上一行分割线,比如下面这个栗子

# 传统写法
print('-----------------------------------')
# 语法糖写法
print('-' * 100)
print('/' * 100)
print('&' * 100)

打包与解包

# 解包
# 有一个元组,需打印元组中的每个值
# 传统写法
a = (1, 2, 3)
x = a[0]
y = a[1]
z = a[2]
print(x, y, z)  # 1 2 3
# 语法糖写法
x, y, z = a
print(x, y, z)  # 1 2 3

# 打包
b = (x, y, z)
print(b)  # (1, 2, 3)

列表拼接

# 有两个列表
list1 = ['蔡', '坨', '坨']
list2 = ['6', '6', '6']
list3 = list1 + list2
print(list3)  # ['蔡', '坨', '坨', '6', '6', '6']

列表切片

list4 = ['测', '试', '蔡', '坨', '坨', '6', '6', '6']
# 取出正数第三个到倒数第二个之间的值组成新列表
print(list4[3:-2])  # ['坨', '坨', '6']
# 前五个元素
print(list4[:5])  # ['测', '试', '蔡', '坨', '坨']
# 后三个元素
print(list4[-3:])  # ['6', '6', '6']

with语句

# 例如:文件读取操作
# 传统写法:1.打开文件 2.读取文件 3.关闭文件
f = open('caituotuo.txt', 'rb')
text = f.read()
print(text)
f.close()

# with写法,会自动close
with open('caituotuo.txt', 'rb') as f:
    text2 = f.read()
    print(text2

列表推导式

# 定义一个列表
a = [1, 2, 3]
# 需要列表中的每个元素加上100.组成新的列表b
# 传统写法
b = []
for i in a:
    b.append(i + 100)
print(b)  # [101, 102, 103]
# 语法糖写法
b = [i + 200 for i in a]
print(b)  # [201, 202, 203]

PS:虽然它叫列表推导式,但同样适用于字典和集合

有了这些语法糖,让枯燥的编码工作变得有趣。

以上,完。

脚踏实地,仰望星空,和坨坨一起学习软件测试,升职加薪!

正文完