Python学习手册之元组拆包、三元运算符和 else 语句深入
在上一篇文章中,我们介绍了 Python 之禅、 Python 编程规范和函数参数,现在我们介绍 Python 的元组拆包、三元运算符和对 Python 的 else 语句深入讲解。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10052453.html
元组拆包
元组拆包允许你将可迭代中 (大多数是元祖) 的每个项分配给一个变量。
nums = (1,2,3)
a,b,c = nums
print(a)
print(b)
print(c)
运行结果:
>>>
1
2
3
>>>
这也可用于交换变量,方法是 a, b = b, a。由于b, a 在右边隐式形成元组 (b, a),然后使用拆包技术。
以星号 (*) 作为前缀的变量接受其他变量遗留的所有可迭代值。
a, b, *c, d = [1,2,3,4,5,6,7,8,9]
print(a)
print(b)
print(c)
print(d)
运行结果:
>>>
1
2
[3, 4, 5, 6, 7, 8]
9
>>>
三元运算符
条件表达式提供 if 语句的功能,同时代码简洁。尽量避免过度使用,因为它很容易降低可读性,但是在分配变量时会经常用到。条件表达式被称为三元运算符。
a = 1
b = 2
h = ""
h = a-b if a>b else a+b
print(h)
运行结果:
>>>
3
>>>
三元操作符检查条件判断并返回相应的值。如果条件为真,执行 a - b。如果 a 小于 b,则执行 a + b。
x = int(input("输入第一个数:"))
y = int(input("输入第二个数:"))
z = int(input("输入第三个数:"))
#三目运算符的第一种写法
print((x if (x>y) else y) if ((x if (x>y) else y)>z) else z)
#三目运算符的第二种写法
a=(x if (x>y) else y)
print(a if (a>z) else z)
运行结果:
>>>
输入第一个数:4
输入第二个数:5
输入第三个数:8
8
8
>>>
从这两个列子可以看出用Python的三目运算符用简短的代码完成需要完成的功能。
else 语句深入
else 语句通常与 if 语句一起使用,但它也可以和 for 或 while 循环一起使用。
对于 for 或 while 循环,如果循环正常结束 (当中断语句不导致循环退出) 时,else 内的代码块被调用。
for i in range(0, 10):
if i > 10:
break
else:
print("hello world 1")
for i in range(0, 10):
if i < 1:
break
else:
print("hello world 2")
运行结果:
>>>
hello world 1
>>>
第一个 for 循环执行正常,导致打印出 hello world 1。第二个代码由于调用了 break 那么 else 语句没有被调用。
else 语句同样可以用在 try/except 语句里。在这种情况下,只有在 try 语句没有异常时,才执行 else 的代码。
try: a = 1/4 except Exception as e: print(e) else: print(a) try: a = 1/0 except Exception as e: print(e) else: print(a)
运行结果:
>>>
0.25
division by zero
>>>
“在人生的竞技场,荣誉和奖赏眷顾那些品行高尚的人。” -- 亚里士多德