一、判断,if … elif … else
i f 语句用于控制代码流。Python 不使用 switch 或 case 语句来控制代码的逻辑,而是使用 if… elif…else 序列。
以下是通过生成0~10的随机数,判断生成的随机数是否小于3或小于5
import random
num = random.randint(0, 10)
if num < 3:
print("less than 3")
elif num < 5:
print("less than 5")
else:
print(num)
less than 3
二、循环
2. 1)for 循环
在 Python 中,我们可以通过 for 语句直接访问可迭代对象的项。如果我们需要同时获取列表或元组等可迭代对象的索引和项,使用 enumerate 比 range(len(iterable))更好。
以下是遍历输出一个列表的值,和遍历输出列表的下标和值
for val in ["foo", "bar"]:
print(val)
结果:
foo
bar
for idx, val in enumerate(["foo", "bar", "baz"]):
print(idx, val)
结果:
(0, 'foo')
(1, 'bar')
(2, 'baz')
2. 2)for … else …
当我们第一次看到 else 属于 for 循环时,可能会有点奇怪。else 子句可以帮助我们避免在循环中使用标志变量。循环的 else 子句在没有中断发生时执行。
for _ in range(5):
pass
else:
print("no break")
输出结果:
no break
下面的代码显示了使用标志变量和 else 子句来控制循环之间的区别。我们可以看到,当循环中发生中断时,else 不会执行。
##########使用标志变量###################
is_break = False
for x in range(5):
if x % 2 == 0:
is_break = True
break
if is_break:
print("break")
输出结果:
break
##########不使用标志变量##################
for x in range(5):
if x % 2 == 0:
print("break")
break
else:
print("no break")
输出结果
break
2. 3)while … else …
这里的else 子句,其用途与 for 循环中的 else 子句相同。我们可以观察到,当在 while 循环中发生中断时,else 就不会执行。
n = 0
while n < 5:
if n == 3:
break
n += 1
else:
print("no break")
2. 4)while …
有许多编程语言,如 C/C++、Ruby 或 Javascript,提供 do while 语句。在 Python 中,没有 do while 语句。但是,我们可以将条件和中断放在 while 循环的末尾来实现同样的事情。
n = 0
while True:
n += 1
if n == 5:
break
n
输出结果:
5
三、异常处理,try … except … else …
Python使用try...except..语法结构来捕获程序执行中的异常以及发生异常后的处理。有趣的是,try 语句还为我们提供了一个 else 子句,以避免捕获由不应受 try… 除保护的代码引发的异常。当 try 部分没有异常发生时,else 子句才会执行。
try:
print("No exception")
except:
pass
else:
print("Success")
输出结果:
No exception
Success