说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
之前,我们的代码是手动执行的,While 语句可以让我们的代码按我们设定的时机一直执行下去。这个时机是 While
后边的布尔表达式结果为 True
的时候。
死循环警告
While 里的代码逻辑一定得有条件让 while 表达式为 False, 否则会造成死循环,死循环可能造成电脑死机。如果遇到死循环需要重启终端。
# 知名的斐波那契数列(后边的值是前两个之和),小于15的
a, b = 0, 1
while a < 15:
print(a, end=' ')
a, b = b, a+b
print('生成完毕')
# 0 1 1 2 3 5 8 13
# 生成完毕
语句结构:
#0. [ While 之前的代码 ]
#1. [ While {表达式} ]
#1.1 { While 循环代码}
#2.[ else ]
# 2.1 循环完成后的代码
#3.[ While 之后的代码 ]
逻辑解释:
# 数到 3
num = 0
while (num <= 3):
print(f'你拍{num},我拍{num}')
num = num + 1
else:
print("再见!")
注意:
while
里边需要循环的语句,需要全部在缩进里while
表达式有为 False
的情况,否则会死循环以下是 7 以内数据的奇偶数判断和输出的代码执行过程:
以下是对一个指定列表中数字的奇偶数判断和输出的代码执行过程:
While 里如果需要逻辑判断,可以嵌套 if else 语句,也可以嵌套 for 循环。
name_list = ['tom', 'lily', 'lucy']
while name_list:
for i in name_list:
if i == 'tom':
print(f'{i} 是男孩。')
else:
print(f'{i} 是女孩。')
name_list.remove(i) # 执行结果就删除了
# tom 是男孩。
# lucy 是女孩。
# lily 是女孩。
可以增加和 while 平级的 else,以执行 while 列表式为 false 的情况。
# 数到 3
num = 0
while (num <= 3):
print(f'你拍{num},我拍{num}')
num = num + 1
else:
print("再见!")
break
和 continue
可实现跳过(终止)和继续执行。
# 跳过 5以上的 这个区间
for i in range(10000):
if i > 4:
break # 大于 4 时路中止整体循环
print(i)
continue 可以跳过本次剩余的代码执行,进入下一次 while 循环中:
a = 0
while a < 5:
a += 1
if a == 4:
continue # 为4时跳过,继续执行
print(a)
# 1 2 3 5
break
和 continue
除了 while
外还可以应用在其他类型的循环中。
参见:
有些情景下,需要让代码块一直执行,可以把表达式直接写成 True
等值永远为直的表达式。
while True:
pass # 啥也不干,怕出危险
var = 5
while int(var) >= 5:
var = input("输入数字,小于等于5的数会退出:")
print(f'你输入了{var}')
print('您已退出')
可以快速应用 while:
swich = 1
while (swich): print('你好呀!')
# 使用 CTRL+C 中断循环
while 语句用于在表达式保持为真的情况下重复地执行:
while_stmt ::= "while" assignment_expression ":" suite
["else" ":" suite]
这将重复地检验表达式,并且如果其值为真就执行第一个子句体;如果表达式值为假(这可能在第一次检验时就发生)则如果 else 子句体存在就会被执行并终止循环。
第一个子句体中的 break 语句在执行时将终止循环且不执行 else 子句体。 第一个子句体中的 continue 语句在执行时将跳过子句体中的剩余部分并返回检验表达式。
更新时间:2024-05-27 11:12:18 标签:python while