2012-01-03 5 views
7

में लूप के लिए अनंत मैं पाइथन के लिए नया हूं। असल में मैंने नीचे दिखाए गए जावा का उपयोग करके कुछ लागू किया।पाइथन

for(;;){ 
switch(expression){ 
    case c1: statements 

    case c2: statements 


    default: statement 
} 
} 

मैं इसे पायथन में कैसे कार्यान्वित करूं?

उत्तर

12

उपयोग करते हुए पाश:

while True: 

     if condition1: 
      statements 
     elif condition2: 
      statements 
     ... 
     else: 
      statements 
0

आप

while True: 
    if c1: 
     statements 
    elif c2: 
     statements 
    else: 
     statements 

या

var = 1 
while var == 1: 
    # do stuff 
+1

आम तौर पर अगर हम असीमित लूप बोल रहे हैं तो पूर्णांक के बजाय बुलियन 'ट्रू' का उपयोग करना अधिक अंतर्निहित है। इस तरह, इरादा डीबग करने के लिए स्पष्ट और आसान है (कौन कहता है कि 'var' का मान समय के साथ बदल नहीं सकता है?)। – Makoto

+0

यह सच है, और बूलियन का उपयोग (संभवतः) धन्य तरीका है। यह वही चीज़ प्राप्त करने का एक और उदाहरण है। 'var' बदल सकता है, लेकिन डेवलपर को यह भी बदलने के लिए नहीं है कि अगर वह उस तरह से जाने का विकल्प चुनती है। ;-) –

+1

लेकिन क्यों 'var' बिल्कुल है? यदि बिंदु एक मान है जो एक अनंत लूप बनाने के लिए हमेशा 1 के बराबर होता है, तो क्यों न केवल '1 == 1'' कहें? और ऐसा करने के बाद, यह सच है कि 'सत्य' लिखने के लिए बेतुका नहीं है। – Ben

1

औपचारिक रूप से उपयोग कर सकते हैं, वहाँ पायथन में कोई switch बयान है, यह नेस्टेड if-elif-else कथन की एक श्रृंखला है।

अनंत लूप while True कथन द्वारा पूरा किए जाते हैं।

सभी एक साथ:

while True: 
    if condition_1: 
     condition_1_function 
    elif condition_2: 
     condition_2_function 
    elif condition_3: 
     condition_3_function 
    else: # Always executes like "default" 
     condition_default_function 
+0

सावधान रहें कि 'if/elif/else' में कोई गिरावट नहीं है, जैसे 'स्विच' – dcrosta

1

आप देख रहे हैं एक तरह से अजगर में असीम दोहराने में आप पाश के लिए एक तरह itertools.count() फ़ंक्शन का उपयोग कर सकते हैं। http://docs.python.org/py3k/library/itertools.html#itertools.count

+0

में यह असीमित जेनरेटर अभिव्यक्तियों के लिए उपयोगी लग रहा है जैसे '(' कॉन्स्टेंट 'i iertotools.count (0, 0)) 'जनरेटर की अपेक्षा करने वाले कार्यों के लिए तर्क के रूप में। आपको एक अलग फ़ंक्शन को परिभाषित करने की आवश्यकता नहीं है जिसमें सही लूप है। – hobs

+0

@ हॉब्स इसे प्राप्त करने के लिए, आप 'itertools.repeat ('CONSTANT') का उपयोग करेंगे। – flornquake