2011-11-14 13 views
6

मेरे होमवर्क असाइनमेंट के लिए, मुझे एक महत्वपूर्ण त्रुटि उठाने के लिए कहा जाता है यदि उपयोगकर्ता (कुंजी) में प्रवेश करने वाले कुंजी (टेक्स्ट) में कोई गैर वर्णमाला वर्ण और reprompt शामिल है। अब तक मैं इस जो काम करने के लिए, लेकिन लगता है स्पष्ट रूप से उपयोग नहीं करता है उम्मीद ट्राई/संरचना को छोड़करKeyErrors और KeyError कैसे बढ़ाएं

key=input("Please enter the key word you want to use: ") 
ok=key.isalpha() 
while (ok==False): 
    print("The key you entered is invalid. Please try again") 
    key=input("Please enter the key word you want to use") 
+2

: (1) यह के होमवर्क, (2) ओ पी के मूल कोड नहीं वाक्य रचना है मान्य, (3) यहां कोई स्पष्ट प्रश्न नहीं है, (4) एकमात्र उत्तर कुछ भी बताए बिना होमवर्क समाधान है। –

उत्तर

11

यह वह जगह है नहीं KeyError की उचित उपयोग (यह dict लुकअप, या इसी तरह की परिस्थितियों के लिए इस्तेमाल किया जा चाहिए था), लेकिन अगर यह है आप तो कुछ इस तरह की कोशिश करने के लिए कहा गया है क्या: यह बहुत के लिए एक बुरा सवाल यह है कि

def prompt_thing(): 
    s = raw_input("Please enter the key word you want to use: ") 
    if s == '' or not s.isalnum(): 
     print("The key you entered is invalid. Please try again") 
     raise KeyError('non-alphanumeric character in input') 
    return s 

s = None 
while s is None: 
    try: 
     s = prompt_thing() 
    except KeyError: 
     pass 
+3

+1 इसके लिए कुंजीइरर का अर्थ नहीं है, इस तरह इसका उपयोग न करें – Yonatan

+1

ओपी ने केवल एक कोड खंड दिया जिसके लिए हम संदर्भ नहीं जानते ... charitably मानते हैं कि बाद की रेखाएं एक नियम बनाते हैं ... – MarkHu

+1

दुर्भाग्यवश , "अनुचित" का एक त्वरित पठन (गलत) "उचित" के रूप में वर्णित किया जा सकता है - मुझे पता है क्योंकि मैं इतना डर ​​गया था कि मैंने जवाब फिर से पढ़ा (और देखा कि मैंने गलत व्याख्या की है!) – sage

संबंधित मुद्दे