2012-03-28 13 views
5

如何檢查輸入是否已輸入?如何檢查用戶是否將'input'或'raw_input'提示符留空?

例如:

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

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

輸入函數不會返回,直到事情已經進入。你的意思是如何檢查輸入的輸入是否爲空? – 2012-03-28 19:09:01

+0

@MarkRansom是的,這正是我需要的! :) – 2012-03-28 19:10:04

回答

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 2012-03-28 19:10:46

+0

@hochl如果空格不是有效的消息:) – agf 2012-03-28 19:14:25

+0

完美!非常感謝你的答覆和會議。 :) – 2012-03-28 19:15:31

0

這也工作了

y = input('Number>> ') 
while not y: 
    y = input('Number>> ') 
相關問題