【发布时间】:2013-05-19 05:20:35
【问题描述】:
我已经在 C/C++ 中完成了此操作,之前我有一个 while 循环,它充当等待程序,直到条件被破坏。在 Python 中,我试图对 while(GPIO.input(24) != 0): 做同样的事情,它说它期待缩进。有没有办法让脚本挂在这个语句上,直到条件被打破?
【问题讨论】:
标签: python while-loop
我已经在 C/C++ 中完成了此操作,之前我有一个 while 循环,它充当等待程序,直到条件被破坏。在 Python 中,我试图对 while(GPIO.input(24) != 0): 做同样的事情,它说它期待缩进。有没有办法让脚本挂在这个语句上,直到条件被打破?
【问题讨论】:
标签: python while-loop
请注意,空的 while 循环会占用资源,因此如果您不介意降低时间分辨率,可以包含 sleep 语句:
while (GPIO.input(24) != 0):
time.sleep(0.1)
这使用更少的 CPU 周期,同时仍以合理的频率检查条件。
【讨论】:
在 Python 中,只要你想要一个空块,就需要使用 pass 语句。
while (GPIO.input(24) != 0):
pass
【讨论】:
pass 语句可以在任何语法上需要非操作的地方使用,而不仅仅是在循环中。
try/except/else/finally 的任何部分。
添加pass,如:
while(GPIO.input(24) != 0):
pass
您也可以考虑另一种方法:
while True:
if GPIO.input(24) == 0: break
你认为哪个更易读。
【讨论】:
在 python 中,您不能将冒号 : 挂起,因此您必须使用 pass 来完成空块。以这种方式使用while 的另一种方法
while True:
if GPIO.input(24) == 0:
break
【讨论】: