一、判断,if … elif … else
i f 语句用于控制代码流。Python 不使用 switch 或 case 语句来控制代码的逻辑,而是使用 if… elif…else 序列。
>>> 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