四、流程控制语句
1、分支语句
Python 中的分支语句主要有 3 种形式, 分别是 if 语句, if...else语句和 if...elif...else语句
if 语句
1、if 和表达式之间有空格, 表达式后面有冒号( : )
ture false 表达式 语法快 输出结果如果表达式的知识非零的数或非空的字符串时, 也认为条件成立,即表达式的值为真 (True)
pythonscore = int(input("请输入你的分数: ")) if score >= 85: print('优秀!') print('本次分数等级测试结束!')
2、定义变量 score 的值为 0, if 语句中的表达式为 score, 这种情况它的返回值为 False, 即不执行 if 语句中的代码
pythonscore = 0 if score: print('分数为: ', score) print('本次分数等级测试结束!')
3、当变量作为表达式时, 如果变量的值是数字 0, 则表达式的返回值是 False, 非零则返回 True。
如果表达式中的变量是字符串, 则只有字符串为空时, 表达式的返回值才为 False, 非空的情况下返回的都是 True。
pythonstr1 = '' if str1: print('输出字符串:', str1) print('人生苦短,我学Python')
- 无论什么样的数据类型作为表达式,当它们的值为空、0 或 None 时,表达式的返回值都是 False,不会执行 if 语句中的代码。
if...else 语句
在 if...else 语句中,当不满足 if 语句的条件时,可以执行 else 后面的代码。
True False 表达式 语句块1 输出结果 语句块2else 不可以单独出现,必须跟在 if 语句的后面
pythonnum = int(input('请输入一个非零的整数:')) if num > 0: print('你输入的是一个正整数。') else: print('你输入的是一个是一个负整数。')
if...elif...else 语句
在 if...elif...else 语句中,if 和 elif 后面的表达式都需要判断真假,else 则不需要,且 elif 和 else 必须和 if 一起使用,不可以单独使用。
True False True False True False 表达式1 语句块1 输出结果 表达式2 语句块2 ... ... 语句块n
pythonscore = int(input('请输入0-100范围内的整数:')) if score >= 85: print('优秀!') elif score >= 70: print('良好!') elif score >= 60: print('及格!') else: print('不及格!')
if 语句的嵌套
pythonprint('乘客是否持有车票?') ticket = input('请输入'是'或'否':') if ticket == '是': print('乘客持有车票,需要安检。') spray = int(input('请输入携带的防晒喷雾剂剂量(ml) : ')) if spray > 120: print('防晒喷雾超过规定的剂量, 不允许携带。') else: print('防晒喷雾剂量符合规定, 允许携带。') else: print('请乘客先去购买车票!')
2、循环语句
while 循环
1、
True False 表达式 循环体 输出结果
pythonnum = 0 while num <= 10: print(num) num += 2
2、水仙花数是一个三位数,它的每一位的立方和等于这个数的本身
pythonnum = 100 while num < 1000: a = num // 100 b = num % 100 // 10 c = num % 10 number = a * a * a + b * b * b + c * c * c if number == num: print('%d是水仙花数' % num) num += 1
for 循环
1、
有 没有 可迭代对象中是否还有元素 取出下一个元素 循环体 输出结果
pythonfor i in range(0, 11, 2): print(i)
2、在使用 range() 函数时,如果只是一个参数,则表示结束值;如果有两个参数,则表示起始值和结束值,如果有 3 个参数,则最后一个参数是步长。
pythonfor i in range(0, 11, 2): print(i, end = ' ')
3、遍历字符串:
pythonstr1 = '人生苦短' list1 = [] for i in str1: list1 += i print(list1)
循环嵌套
九九乘法表:
pythonfor i in range(1, 10): for j in range(1, i + 1): print('%d * %d = %d' % (j, i, i * j), end = '\t') print() #换行
3、跳转语句
break 语句
pythonfor i in range(1, 20 ,2): if i > 10: break print(i) print('这是循环之外的程序。')
break 语句可以让程序随时跳出循环的限制,继续执行循环语句之外的程序
continue 语句
与 break 语句相比,continue 语句只能种植本次循环,提前进入到下一次循环中。
pythonfor i in range(1, 10, 2): if i == 7: # 退出循环的条件 continue print(i) print('这是循环之外的程序。')
4、语句的特殊情况
pass 语句
pythonfor i in range(1, 10, 2): if i == 7: pass else: print(i)
通过 pass 语句来填补这个空缺位置。
使用 pass 语句后,程序可以顺利执行。
如果在
if i == 7:
后面没有任何缩进的语句,则会影响程序的运行。
循环语句中的 else
1、else 和 while 属于同一个层次。
else 和 for 属于一个层次。
pythonfor i in range(1, 10, 2): print('输出 (for 循环中)', i) else: print("输出 (else 中)", i)
- 如果 i 加 2 则超出了规定的范围,所以不会继续执行循环,而是执行 else 后面的语句,输出 i 的值 9。
2、如果使用 break 语句中途退出循环,则不会执行 else 后面的语句。
pythonfor i in range(1, 10, 2): print('输出 (for 循环中)', i) if i == 5: break else: print("输出 (else 中)", i)