【发布时间】:2021-10-22 11:54:22
【问题描述】:
我在“while 循环”函数中导致的拼写错误导致我提出以下问题
from time import sleep
from random import randint
def control_pressure():
pressure = measure_pressure()
while True:
if pressure <= 500:
break
while pressure > 500 and pressure <= 700:
run_standard_safeties()
pressure = measure_pressure()
while pressure > 100: # Here is the typo
run_critical_safeties()
pressure = measure_pressure()
print("Wow! The system is safe...")
def measure_pressure():
pressure = randint(450, 800)
print(f"psi={pressure}", end="; ")
return pressure
def run_standard_safeties():
print("Running standard safeties...")
sleep(0.2)
def run_critical_safeties():
print("Running critical safeties...")
sleep(0.7)
if __name__ == "__main__":
control_pressure()
在上面,我打错了,检查了压力> 100,而条件。但是在函数的第一部分早些时候,它检查了,而压力 100 的情况下破坏函数。
但是这个功能一直没有停止。为什么会这样?
谢谢
【问题讨论】:
-
您对
return和break感到困惑。return终止函数,但break只中断循环。然后执行循环之后的所有语句 -
如果外部
while循环没有中断,那仅意味着pressure始终大于500,请尝试在外部while循环中打印pressure。 -
不,代码已经通过代码在 measure_pressure() 函数中显示了压力值 - print(f"psi={pressure}", end="; ")。但它仍然没有坏
标签: python python-3.x while-loop