2014-07-02 86 views
0

我的腳本要求用戶交互並要求他/她的名字。我正在使用raw_input來展示此功能。 我想檢查用戶是否給出了任何輸入。 我想用空白檢查輸入的字符串。 目前的代碼看起來是這樣的:如何檢查用戶是否在raw_input中輸入字符串(在python中)?

str = raw_input("Enter your name: ") 
if("" in str): 
    print "user din't entered anything" 

上述代碼的工作部分,並且如果用戶按下而沒有任何輸入輸入,輸出user din't entered anything被打印。

問題是,當用戶輸入類似foo bar之類的東西時,上述代碼也有效[請注意foobar之間的空格。是的,我知道這是爲什麼發生。

另一種方法是檢查輸入的字符串的長度。如果用戶沒有輸入任何內容,那麼長度將爲零。但同樣的問題出現在這裏。如果用戶輸入多個空格,會怎麼樣!長度邏輯將失敗。

我該怎麼做才能檢查用戶是輸入了字符串還是空白? 有沒有什麼字符串在python中,我可以做if(str == "") 任何幫助表示讚賞。

+0

'如果不是str:打印'沒有輸入'' – Hyperboreus

+0

感謝您的快速回復,但是這會失敗,並且會有多個空白。 – v1h5

+1

@ v1h5:你爲什麼說「多於一個空白」?假設「空白」表示空白字符,它將任意數量的空白作爲有效輸入處理,而不僅僅是一個。另外,x中的'''對於任何字符串'x'都是正確的,而不僅僅是對於其中有空格的字符串。 – user2357112

回答

1

isspace()檢查該字符串就是空間,而不需要創建一個新的字符串對象作爲strip()

if(not str or str.isspace()): 
    print "user din't entered anything" 

旁白:str是內置。用自己的變量隱藏它可能導致有趣的錯誤

+0

@ user2357112的確如此。這種情況需要檢查 –

+0

這工作得很好。我接受這個答案。歡呼@gnibbler – v1h5

+0

是的,str是python中的一個函數。我僅僅爲了舉例而使用了str。我會小心不要使用這個。 :) – v1h5

2
value = raw_input("Enter your name: ") 
if not value.strip(): 
    print "user din't entered anything" 

strip()刪除tracing空格和單詞之間。如果是空的話。它刪除所有

+0

你幾乎試過這個嗎? – v1h5

+0

@ v1h5是的。我試過了 –

+0

我認爲@ v1h5的評論是在邏輯修復之前編寫的。 – mabac

相關問題