2012-03-28 17 views
5

मैं कैसे जांचूं कि इनपुट दर्ज किया गया है या नहीं?मैं कैसे जांचूं कि कोई उपयोगकर्ता 'इनपुट' या 'raw_input' प्रॉम्प्ट खाली छोड़ देता है या नहीं?

उदाहरण के लिए:

x = str(raw_input('Message>> ')) 

या

y = input('Number>> ') 
+1

काम इनपुट समारोह वापस नहीं होगा, जब तक कुछ दर्ज किया गया है। क्या आपका मतलब है कि दर्ज इनपुट कैसे खाली है या नहीं? –

+0

@MarkRansom हां यह वही है जो मुझे चाहिए! :) –

उत्तर

13

तुम्हें पता है अगर कुछ दूसरे के लिए दर्ज किया गया था, क्योंकि यह एक SyntaxError बढ़ा देंगे। आप इस तरह त्रुटि को पकड़ कर सकते हैं:

try: 
    y=input('Number>> ') 
except SyntaxError: 
    y = None 

तो

# not just 'if y:' because 0 evaluates to False! 
if y is None: 

परीक्षण या, अधिमानतः, का उपयोग raw_input:

try: 
    y = int(raw_input('Number>> ')) 
except ValueError: 
    print "That wasn't a number!" 

पहले एक के लिए, x कोई रिक्त स्ट्रिंग अगर हो जाएगा कुछ भी दर्ज नहीं किया गया है। str पर कॉल अनावश्यक है - raw_input पहले से ही एक स्ट्रिंग देता है। रिक्त स्ट्रिंग स्पष्ट रूप से के लिए परीक्षण किया जा सकता है:

if x == '': 

या परोक्ष:

if x: 

क्योंकि केवल False स्ट्रिंग है और रिक्त स्ट्रिंग।

+1

या 'if x.strip():' उन मामलों से बचने के लिए जहां किसी ने केवल रिक्त स्थान दर्ज किया है ... – hochl

+0

@ होचल यदि केवल रिक्त स्थान मान्य संदेश नहीं हैं :) – agf

+0

बिल्कुल सही! आपके उत्तर एएफएफ और होचल के लिए बहुत बहुत धन्यवाद। :) –

0

यह भी बहुत

y = input('Number>> ') 
while not y: 
    y = input('Number>> ') 
संबंधित मुद्दे

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