我在“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,而条件。但是在前面的函数的第一部分,它检查,而压力<= 500,然后打破。因此,从技术上讲,任何小于或等于500的值都应该返回True,并在不达到压力> 100条件的情况下破坏函数。
但这一职能没有停止。为什么会发生这种事?
谢谢
发布于 2021-08-21 05:49:14
如果初始数在100和500以上,它将进入第二个循环,并且永远不会停止,因为它总是在100以上,因为您从450-800之间随机获取一个。
https://stackoverflow.com/questions/68870442
复制相似问题