10

状態が壊れるまでプログラムを保持する待機として機能する while ループがある前に、C/C++ でこれを行いました。Python では、同じことをしようとしていますwhile(GPIO.input(24) != 0):が、インデントが必要だと言っています。条件が壊れるまでスクリプトをこのステートメントにハングさせる方法はありますか?

4

4 に答える 4

19

空の while ループはリソースを占有する傾向があることに注意してください。したがって、時間分解能を下げても構わない場合は、次のsleepステートメントを含めることができます。

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

これにより、妥当な頻度で状態をチェックしながら、使用する CPU サイクルが少なくなります。

于 2013-05-23T18:08:18.447 に答える
15

Python ではpass、空のブロックが必要なときはいつでもステートメントを使用する必要があります。

while (GPIO.input(24) != 0):
    pass
于 2013-05-23T18:05:24.713 に答える
7

を次のように追加しpassます。

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

別のアプローチを検討することもできます。

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

どちらが読みやすいと思いますか。

于 2013-05-23T18:05:01.887 に答える
3

Python では、コロン:をぶら下げたままにすることはできないため、 a を使用passして空のブロックを完成させる必要があります。このように a を使用する別のwhile方法

 while True:
     if GPIO.input(24) == 0:
         break
于 2013-05-23T18:07:29.957 に答える