2013-02-01 11 views
7
player_input = '' # This has to be initialized for the loop 

while player_input != 0: 

    player_input = str(input('Roll or quit (r or q)')) 

    if player_input == q: # This will break the loop if the player decides to quit 

     print("Now let's see if I can beat your score of", player) 
     break 

    if player_input != r: 

     print('invalid choice, try again') 

    if player_input ==r: 

     roll= randint (1,8) 

     player +=roll #(+= sign helps to keep track of score) 

     print('You rolled is ' + str(roll)) 

     if roll ==1: 

      print('You Lose :)') 

      sys.exit 

      break 

मैं इस कार्यक्रम बताने के लिए अगर roll == 1 बाहर निकलने के लिए कोशिश कर रहा हूँ, लेकिन कुछ भी नहीं हो रहा है और यह सिर्फ अगर मैं sys.exit()sys.exit() यह अजगर

इस्तेमाल करने की कोशिश मुझे एक त्रुटि संदेश देता का उपयोग कैसे करें

हां, मैं प्रोग्राम के शीर्ष पर import sys का उपयोग कर रहा हूं। क्या कोई मदद कर सकता है?


यह संदेश है कि यह पता चलता है जब यह कार्यक्रम

Traceback (most recent call last): 
line 33, in <module> 
    sys.exit() 
SystemExit 
+3

आपको प्राप्त वास्तविक ट्रेसबैक क्या है? – Volatility

+0

कृपया एक पूर्ण कोड स्निपेट पोस्ट करने का प्रयास करें - उदाहरण के लिए 'प्लेयर' कहां से आ रहा है? मैंने पायथन 3.x –

+5

के लिए भी पुनः टैग किया है समस्या यह है कि आप अपना कोड आईडीएलई में चला रहे हैं। आईडीईएल सभी अपवादों (यहां तक ​​कि SystemExit) पकड़ता है और इस प्रकार आप उस ट्रेसबैक को देखते हैं। यह देखने के लिए कि आम तौर पर आपके पाइथन प्रोग्राम को पाइथन खोल में कैसे चलाया जाएगा (टर्मिनल/कमांड प्रॉम्प्ट से लॉन्च पायथन) – Bakuriu

उत्तर

4

sys.exit() एक SystemExit अपवाद है जो आप शायद कुछ त्रुटि के रूप में मानते हैं को जन्म देती है चलाता है। यदि आप अपने कार्यक्रम चाहते हैं SystemExit बढ़ाने के लिए नहीं है, लेकिन शान से लौटने के लिए, आप एक समारोह में अपने कार्यक्षमता लपेट और स्थानों से लौटने आप sys.exit

0

उपयोग करने के लिए 2.7 का उपयोग करते हुए योजना बना रहे हैं कर सकते हैं:

from functools import partial 
from random import randint 

for roll in iter(partial(randint, 1, 8), 1): 
    print 'you rolled: {}'.format(roll) 
print 'oops you rolled a 1!' 

you rolled: 7 
you rolled: 7 
you rolled: 8 
you rolled: 6 
you rolled: 8 
you rolled: 5 
oops you rolled a 1! 

फिर बदल "उफ़ "एक raise SystemExit

4

मुझे लगता है कि करने के लिए प्रिंट आप

sys.exit(0) 

उपयोग कर सकते हैं आप इसेजाँच कर सकते हैं 0 पायथन में 2.7 डॉक्टर:

वैकल्पिक तर्क तर्क बाहर निकलने की स्थिति (शून्य पर डिफ़ॉल्ट), या किसी अन्य प्रकार की वस्तु देने वाला एक पूर्णांक हो सकता है। यदि यह एक पूर्णांक है, तो शून्य को "सफल समाप्ति" माना जाता है और किसी भी nonzero मान को गोले और इसी तरह से "असामान्य समाप्ति" माना जाता है।