简介
Python的条件和循环语句在函数式编程中使用非常广泛,它们可以提高我们的编程效率,使程序按照指定的流程进行。
常见的流程有:
- 顺序结构:按照程序流程依次往下执行;
- 选择结构:通过判断条件选择执行;
- 循环结构:重复某一段程序流程;
- 中断结构:中断当前程序块流程。
其中if
语句用于选择结构,for
和while
语句用于循环结构,continue
和break
语句用于中断结构。
if语句
if
语句用于条件判断,选择执行。常见的if
语句格式如下:
单分支if结构:
1 2 |
if condition: code block |
这是最简单的if
语句,当满足条件时,就执行代码块里面的内容,注意代码块前面要有缩进。如果不满足条件时,直接忽略if
语句包含的所有内容(包括代码块),直接执行下一条语句。
代码演示:
1 2 3 4 5 6 |
if 2 > 1: print('Yes, it is.') if 2 > 3: print('baidu.com') print('finthon.com') |
输出的结果为:
1 2 |
Yes, it is. finthon.com |
双分支if-else结构:
1 2 3 4 |
if condition: code block1 else: code block2 |
双分支选择语句,当满足条件时,执行code block1
内容,否则执行code block2
内容。注意代码块的缩进必须一致。
代码演示:
1 2 3 4 5 |
a = 'finthon.com' if a == 'finthon.com': print('Yes, it is.') else: print('No, take easy.') |
结果为:
1 |
Yes, it is. |
多分支if-elif-else结构:
1 2 3 4 5 6 |
if condition1: code block1 elif condition2: code block2 else: code block3 |
多分支语句常用于条件判断,当存在多个条件时,可以增加elif
的数量。语句也非常好理解,首先判断是否满足condition1
,否则判断是否满足condition2
,都不满足就执行else
语句,总之就是三选一。
代码演示:
1 2 3 4 5 6 7 |
score = 7 if score >= 0 and score < 5: print('差评') elif score >= 5 and score < 8: print('中评') else: print('好评') |
结果为:
1 |
中评 |
嵌套if语句:
1 2 3 4 5 6 7 |
if condition1: if condition2: code block1 else: code block2 else: code block3 |
在嵌套语句中,代码块的缩进非常重要,同级代码块缩进必须一致,不然程序就会报错。嵌套语句中,内层语句满足条件的首先执行。
代码演示:
1 2 3 4 5 6 7 8 9 10 11 |
score = 7 if score >= 0 and score < 5: print('差评') elif score >= 5 and score < 8: print('中评') if score == 7: print("score is 7") else: print("I don't know") else: print('好评') |
结果为:
1 2 |
中评 score is 7 |
for语句
for
语句用于循环结构,常见格式如下:
1 2 |
for i in xxx: code block |
其中xxx
是一个容器类型或者迭代器。通过for
语句遍历xxx
中的每个元素,并每次执行code block
内容。
代码演示:
1 2 |
for i in range(5): print(i) |
for
语句经常和range()
函数配合使用,其中range(start, end + 1)
函数包含排列数字start
到end
,只有一个数字时,从0开始计数。在这里5
代表0,1,2,3,4
五个数。结果如下:
1 2 3 4 5 |
0 1 2 3 4 |
遍历列表:
1 2 |
for x in [5, 2, 0]: print(x) |
结果为:
1 2 3 |
5 2 0 |
遍历字典:
1 2 |
for key in {'a':1, 'b':2}: print(key) |
注意遍历字典,是遍历其中的键,结果为:
1 2 |
a b |
for循环实现乘法口诀:
1 2 3 4 |
for i in range(1, 10): for j in range(1, i + 1): print(f'{j} * {i} = {j*i:<2}', end=' ') print() |
结果为:
1 2 3 4 5 6 7 8 9 |
1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81 |
while语句
while
语句也用于循环结构,它的格式如下:
1 2 |
while condition: code block |
当condition
为真时,则执行code block
内容。
代码演示:
1 2 3 4 |
n = 0 while n < 5: print(n) n += 1 |
依次打印n
,当n=5
时结束循环,结果如下:
1 2 3 4 5 |
0 1 2 3 4 |
在while
循环中,还有一种无限循环:
1 2 |
while True: pass |
注意无限循环语句要慎用,语句中一定要有打破循环的break
语句才行。
break语句
break
语句属于中断结构,一旦执行该语句,循环立刻结束。break
语句可以用在for
语句和while
语句中。
代码演示:
1 2 3 4 |
for i in range(5): print(i) if i == 3: break |
当i==3
时,立刻结束循环,结果为:
1 2 3 4 |
0 1 2 3 |
代码演示:
1 2 3 4 5 6 |
n = 0 while n < 5: print(n) n += 1 if n == 3: break |
结果为:
1 2 3 |
0 1 2 |
continue语句
continue
语句也属于中断结构,与break
语句不同的是,它只是终止当前的循环,直接跳过后面的语句进入到下一个循环当中。
1 2 3 4 |
for i in range(5): if i == 2: continue print(i) |
当i==2
时,continue
语句直接跳过当前循环进入下一循环中,结果为:
1 2 3 4 |
0 1 3 4 |
总结
本文介绍了条件if
语句和循环for
、while
语句,他们直接决定了程序结构。编写代码的时候,逻辑思路必须非常清晰,合理利用中断语句break
和continue
,能使程序流程更加灵活,认真掌握这些方法肯定受益匪浅。