欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习手册之元组拆包、三元运算符和 else 语句深入

程序员文章站 2022-06-05 16:07:48
在上一篇文章中,我们介绍了 Python 之禅、 Python 编程规范和函数参数,现在我们介绍 Python 的元组拆包、三元运算符和对 Python 的 else 语句深入讲解。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10052453.html ......

在上一篇文章中,我们介绍了 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 语句一起使用,但它也可以和 forwhile 循环一起使用。
对于 forwhile 循环,如果循环正常结束 (当中断语句不导致循环退出) 时,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
>>>

 

 

 

 “在人生的竞技场,荣誉和奖赏眷顾那些品行高尚的人。” -- 亚里士多德