在上一篇文章中, 我们介绍了 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
- >>>
"在人生的竞技场, 荣誉和奖赏眷顾那些品行高尚的人." -- 亚里士多德
来源: https://www.cnblogs.com/dustman/p/10057482.html