【问题标题】:Using a while loop as a wait in python在python中使用while循环作为等待
【发布时间】:2013-05-19 05:20:35
【问题描述】:

我已经在 C/C++ 中完成了此操作,之前我有一个 while 循环,它充当等待程序,直到条件被破坏。在 Python 中,我试图对 while(GPIO.input(24) != 0): 做同样的事情,它说它期待缩进。有没有办法让脚本挂在这个语句上,直到条件被打破?

【问题讨论】:

    标签: python while-loop


    【解决方案1】:

    请注意,空的 while 循环会占用资源,因此如果您不介意降低时间分辨率,可以包含 sleep 语句:

    while (GPIO.input(24) != 0):
        time.sleep(0.1)
    

    这使用更少的 CPU 周期,同时仍以合理的频率检查条件。

    【讨论】:

      【解决方案2】:

      在 Python 中,只要你想要一个空块,就需要使用 pass 语句。

      while (GPIO.input(24) != 0):
          pass
      

      【讨论】:

      • 我今天学到的一件有趣的事情是pass 语句可以在任何语法上需要非操作的地方使用,而不仅仅是在循环中。
      • 完全正确;作为另一个例子,包括try/except/else/finally 的任何部分。
      【解决方案3】:

      添加pass,如:

      while(GPIO.input(24) != 0):
          pass
      

      您也可以考虑另一种方法:

      while True:
          if GPIO.input(24) == 0: break
      

      你认为哪个更易读。

      【讨论】:

        【解决方案4】:

        在 python 中,您不能将冒号 : 挂起,因此您必须使用 pass 来完成空块。以这种方式使用while 的另一种方法

         while True:
             if GPIO.input(24) == 0:
                 break
        

        【讨论】:

          猜你喜欢
          • 2012-10-13
          • 2016-12-05
          • 2015-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-22
          • 2021-08-14
          • 2012-05-20
          相关资源
          最近更新 更多