2016-07-13 308 views
0

我正在編寫一個Python程序(在OS X/Linux上),其中用戶必須在while循環中輸入一些單詞。這是它的相關部分:輸入特定字符時停止Python輸入

i = 0 
array = [] 
while (i < 10): 
    array.append(raw_input("Prompt: ")) 
    i = i + 1 

但是,只要用戶鍵入一個空格,而不需要按ENTER鍵,我想停止輸入。

我知道我不能用raw_input這樣做,但是我沒有找到任何方法來實現我正在嘗試做的事情。基本上我希望用戶能夠輸入一個單詞,使用SPACE按鈕代替ENTER來輸入下一個單詞。

你有什麼想法嗎?提前致謝。

+0

那麼你將不得不使用其他輸入法。 raw_input等待,直到eol/eod被掛起(例如,用戶命中返回)。您需要處理每個關鍵行程並檢查空格。 –

+0

無論是'raw_input','input'還是'sys.stdin.read(1)'都不可能。沒有適用於每個操作系統的通用解決方案。 – pts

+0

這幾乎是平臺特定的。 [看到這裏](http://stackoverflow.com/questions/510357/python-read-a-single-character-from-the-user) - 你也可以考慮使用類似tkinter的東西來處理類似的事件或重映射在輸入過程中輸入空格鍵的鍵 - 但可能比您要查找的內容更多,而且您可能(取決於)想要/需要爲各種鍵盤佈局調整參數。 – sytech

回答

0

無法使用raw_input,inputsys.stdin.read(1)。沒有適用於每個操作系統的通用解決方案。

下面是如何讀取在Python用戶的單個字符,而不用按Enter鍵:Python read a single character from the user

然後,你需要處理的for循環的每個字符。