本章讨论两种基本的程序结构,判断和循环。
条件控制
if 语句
当条件为真时,执行if后的代码;否则,不执行。
if condition:
    code
 
当condition为True时,执行code。
cel = int(input('输入今日气温:'))
if cel >= 30:
    print('要开空调')
 
运行结果
输入今日气温:32
要开空调
 
if-else 语句
当条件为真时,执行if后的代码;否则,执行else后的代码。
if condition:
    code1
else:
    code2
 
当condition为True时,执行code1;否则,执行code2。
cel = int(input('输入今日气温:'))
if cel >= 30:
    print('要开空调')
else:
    print('不开空调')
 
运行结果
输入今日气温:13
不开空调
 
if-elif-else 语句
if condition1:
    code1
elif condition2:
    code2
···
else:
    code
 
依次检查condition1,condition2 … 当遇到第一个conditionN = True时,执行对应的代码codeN,后续的condition都不再检查(跳过);当所有condition都为False时,执行else后的代码。
x = 0.5
if x < 1:
    print('x小于1')
elif x > 0:
    print('x大于0')  # x = 0.5 时被跳过
else:
    print('x小于等于0或大于等于1')  # 永远不可能执行
 
运行结果
x小于1
 
上面的例子中,x < 1为True,执行print('x小于1'),后续的elif和else都被跳过。
嵌套 if 语句
条件控制语句可以包含条件控制语句,这叫做嵌套
cel = int(input('输入今日气温:'))
if cel >= 30:
    print('开制冷模式')
    if cel >= 35:
        print('去买冰淇淋~')
elif cel <= 10:
    print('开制热模式')
    if cel <= 0:
        print('多喝热水!')
else:
    print('不开空调')
 
运行结果
输入今日气温:40
开制冷模式
去买冰淇淋~
 
循环语句
for 循环
for循环(计数循环),把for后面的代码执行n次。
for x in range(5):
    print(x)
 
运行结果
0
1
2
3
4
 
在上面的例子中,for循环中的语句执行5遍。x的值从0开始。
while 循环
while循环(直到循环),反复执行while后的代码,直到条件为假。
x = 0
while x < 5:
    print(x)
    x += 1
 
运行结果
0
1
2
3
4
 
只要while后的条件为True,就反复执行while后的语句;直到while后的条件为False,结束循环。
循环控制语句
continue 语句
continue用于跳过本轮循环的剩余内容,进入下一轮循环。
for x in range(10):
    if x == 5:
        continue
    print(x)
 
运行结果
0
1
2
3
4
6
7
8
9
 
当遇到continue时,跳过本轮循环的剩余部分,执行下一轮循环。在上面的例子中,当x = 5时,后面的print(x)被跳过了。
continue也可用于while循环。
x = 0
while x < 10:
    if x == 5:
        x += 1
        continue
    print(x)
    x += 1
 
运行结果
0
1
2
3
4
6
7
8
9
 
在上面的例子中,如果continue前没有x += 1,x = 5时x的自增又被跳过了,此后x恒为5,这就形成了死循环。死循环的解决办法是使用键盘中断,同时按下CTRL+C,请你自己尝试。
break语句
break用于结束执行循环体。
for x in range(10):
    if x == 5:
        break
    print(x)
 
运行结果
0
1
2
3
4
 
遇到break时,跳过本次循环的剩余部分,并结束循环。你可以尝试一下把print(x)写在if x == 5:前面,比较这两种写法的运行结果有什么不同。
break也可以用于while循环。
x = 0
while True:
    if x == 5:
        break
    print(x)
    x += 1
 
运行结果
0
1
2
3
4
 
for-else 和 while-else
for循环和while循环后可以接一个else,循环结束后,执行else后的语句。
for x in range(5):
    print(x)
else:
    print('循环结束')
 
运行结果
0
1
2
3
4
循环结束
 
若循环中途遇到break而终止,则else后的语句不执行。
x = 0
while True:
    if x == 5:
        break
    print(x)
    x += 1
else:
    print('循环结束')
 
运行结果
0
1
2
3
4
 
循环嵌套
循环也可以嵌套循环,下面的例子输出九九乘法口诀表
for y in range(1, 10):  # y的值从1到9
    for x in range(1, y + 1):  # x的值从1到y
        print(x, '*', y, '=', int(x * y), end=' ')
        if x * y < 10:
            print(' ', end='')  # 对齐(可以不要)
    print()  # 行末还行
 
运行结果
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 










