Python中while not False类循环为何能启动?运行逻辑是什么?
代码逻辑说明
1. 循环启动原因
初始状态下correct_value被赋值为布尔值False,while循环的判断条件not correct_value运算后结果为True,只要while的判断条件为真,就会直接进入循环体执行,因此第一次循环可以正常启动。
2. 循环维持&终止逻辑
循环的持续运行条件就是not correct_value为真,也就是correct_value始终保持False时循环会一直执行,结合代码里的异常捕获逻辑具体如下:
- 当用户输入非数字内容时,
int(input())会触发ValueError异常,程序进入except分支打印提示信息,此时不会执行else分支的代码,correct_value仍为False,下一轮循环判断时条件依旧为真,循环继续。 - 当用户输入合法数字时,
int(input())可以正常执行不会触发异常,程序进入else分支,将correct_value赋值为True,下一轮循环判断时not correct_value结果为假,循环终止,最终返回合法的数字输入。
你提供的代码完整逻辑如下:
def repeat(): correct_value = False while not correct_value: try: guess = int(input()) except ValueError: print("Please Enter a Number") else: correct_value = True return guess
内容的提问来源于stack exchange,提问作者Dev_Michael
相关产品推荐
相关产品推荐

