2012-10-10 11 views
6

यदि कोई शर्त सही ढंग से संतुष्ट न हो तो मेरे पास पाइथन किसी कथन के शीर्ष पर कैसे जा सकता है।यदि कोई विकल्प वैध नहीं है तो कथन पर पहले वापस कैसे जाएं

मैं एक बुनियादी यदि इस तरह/किसी और बयान:

print "pick a number, 1 or 2" 
a = int(raw_input("> ") 

if a == 1: 
    print "this" 
if a == 2: 
    print "that" 
else: 
    print "you have made an invalid choice, try again." 

क्या मैं चाहता हूँ उन्हें पूरे कार्यक्रम को पुनः आरंभ किए बिना अगर बयान इस के लिए एक और विकल्प बनाने के लिए उपयोगकर्ता संकेत करने के लिए है, लेकिन बहुत कर रहा हूँ पाइथन के लिए नया और कहीं भी ऑनलाइन जवाब खोजने में परेशानी हो रही है।

+1

आपको पूरी चीज को लूप (आमतौर पर 'जबकि') में लपेटना होगा। – quantumSoup

+0

तो यह मेरे लिए कब करेगा? धन्यवाद बीमार जाना अनुसंधान, – wondergoat77

+0

@quantumSoup शुरू करने के बारे में कोई जानकारी नहीं थी, इस तरह के समय मैं डू-लूप लूप को याद करता हूं, नियमित रूप से लूप के साथ अनुकरण करने में आसान है, हालांकि – TheZ

उत्तर

6

एक बहुत ही आम तरीका यह है break बयान के साथ, एक while True पाश है कि अनिश्चित काल के लिए चलेंगे उपयोग करने के लिए लूप बाहर निकलने के लिए जब इनपुट मान्य है यहाँ जिस तरह से, पुनर्प्रयास की संख्या को सीमित करने के लिए उदाहरण के लिए:

print "pick a number, 1 or 2" 
for retry in range(5): 
    a = int(raw_input("> ") 
    if a == 1: 
     print "this" 
     break 
    if a == 2: 
     print "that" 
     break 
    print "you have made an invalid choice, try again." 
else: 
    print "you keep making invalid choices, exiting." 
    sys.exit(1) 
+0

धन्यवाद! – wondergoat77

4

थोड़ी देर लूप का उपयोग करें।

print "pick a number, 1 or 2" 
while True: 
    a = int(raw_input("> ") 
    if a == 1: 
     print "this" 
     break 
    if a == 2: 
     print "that" 
     break 
    print "you have made an invalid choice, try again." 

भी एक अच्छा है:

print "pick a number, 1 or 2" 
a = None 
while a not in (1, 2): 

    a = int(raw_input("> ")) 

    if a == 1: 
     print "this" 
    if a == 2: 
     print "that" 
    else: 
     print "you have made an invalid choice, try again." 
+0

धन्यवाद, आपने मुझे इसे बाहर निकालने और बंद करने के लिए मुझे हराया प्रश्न, मदद की सराहना करें – wondergoat77

+0

पंक्ति 2 में अभिभावक अनावश्यक हैं और आप कोलन को याद करते हैं। इसका उपयोग करना आसान होगा 'जबकि नहीं (1, 2): '। – deadly

+0

@deadly बहुत अच्छी तरह से। अतिरिक्त जानकारी के लिए –

3

आप एक पुनरावर्ती समारोह का उपयोग कर सकते

def chk_number(retry) 
    if retry==1 
     print "you have made an invalid choice, try again." 
    a=int(raw_input("> ")) 
    if a == 1: 
     return "this" 
    if a == 2: 
     return "that" 
    else: 
     return chk_number(1) 

print "Pick a number, 1 or 2" 
print chk_number(0) 
संबंधित मुद्दे