我試圖從控制檯獲取由換行符分隔的多個名稱,並將它們放入一個變量。假設我想永遠從終端獲得輸入(我會稍後添加一些代碼以打破循環)。我知道如何做一個while循環和遞歸,但我希望能夠用for循環做到這一點。python遍歷stdin逐行使用輸入()
在下面的例子,當我得到"peter"
作爲從終端我得到的每個字母,而不是一整行同時輸入:現在
for name in input():
print(name)
,如果我用sys.stdin
的name
變量變爲"peter\n"
:
for name in sys.stdin:
print(name)
有沒有一種簡單的方法來input()
給"name"
一整行,而不是單個字符?或者只是使用for in
的本質,我將迭代輸入中的字符?以這種方式獲得投入是否存在固有的風險/問題?在像這樣的情況下獲得輸入是否有「標準」方式?
我在Ubuntu 15.10上使用Python 3.5.1。
'input()'返回一個字符串,它是一個可迭代的字符串,所以當你嘗試迭代它時,你會逐個獲取每個字符。 –
好吧,這是有道理的。 input()返回一個字符串。那麼sys.stdin是否會返回一個逐行迭代的緩衝區? – PeterH
因爲sys.stdin會返回一個類似於對象的文件,該文件在迭代時將包含輸入的每一行。 –