2013-05-23 8 views
6

में प्रतीक्षा के रूप में थोड़ी देर के लूप का उपयोग करके मैंने इसे सी/सी ++ में किया है, जहां मेरे पास थोड़ी देर लूप है जो प्रोग्राम को तब तक व्यवस्थित करता है जब तक कि स्थिति टूट जाती है। पायथन में मैं while(GPIO.input(24) != 0): के साथ ऐसा करने की कोशिश कर रहा हूं और इसका कहना है कि यह एक इंडेंट की उम्मीद कर रहा है। क्या इस कथन पर लटकने के लिए वैसे भी है जब तक कि स्थिति टूट न जाए?पायथन

उत्तर

7

एक pass, इस तरह के रूप में जोड़ें:

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

तुम भी एक अलग दृष्टिकोण पर विचार हो सकता:

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

जो भी आपको लगता है अधिक पठनीय है।

13

पायथन में, आपको pass कथन का उपयोग करने की आवश्यकता है जब भी आप एक खाली ब्लॉक चाहते हैं।

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

आज मैंने जो एक रोचक बात सीखा वह यह था कि 'पास' कथन का उपयोग कहीं भी किया जा सकता है, जहां गैर-ऑप सिंथैक्टिक रूप से जरूरी है, केवल लूप में नहीं। –

+0

बिल्कुल; जिसमें एक अन्य उदाहरण के रूप में 'try' /' को छोड़कर '' '' '' '' '' को छोड़कर कोई भी भाग शामिल है। –

3

अजगर में आप पेट के : फांसी ताकि आप खाली ब्लॉक को पूरा करने के लिए एक pass का उपयोग करना चाहिए नहीं छोड़ सकते। एक और तरीका है इस तरह से एक while उपयोग करने के लिए

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

, ध्यान दें कि एक खाली करो, जबकि पाश हॉग संसाधनों के लिए करते हैं जाएगा, इसलिए यदि आप समय का रिज़ॉल्यूशन घटाने कोई आपत्ति नहीं है, तो आप एक sleep बयान शामिल कर सकते हैं:

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

यह कम CPU चक्र का उपयोग करता है, जबकि अभी भी उचित आवृत्ति के साथ स्थिति की जांच करता है।