使用此代码:
A = raw_input("Please input text here")
print A
print len(A)
对于input
,当我从记事本中复制并粘贴时,它只识别以下第一行:
Cars are fast
Motorcycles are faster
Planes are even faster
因此,print A
将print
'汽车快速'和print len(A)
print 13
input
,这是'汽车快速的长度'
如何让Python识别{{1}}的剩余行?
谢谢。
答案 0 :(得分:5)
raw_input只会读取一行输入。
有关从命令行获取输入的一般概述,请参阅this question的答案。
如果你想使用raw_input,那么一个循环会读取你所有的行,但你需要一种方法来突破,就像这样。
while True:
A = raw_input("Please input text here (Q to quit)")
if len(A) == 1 and A[0].lower() == "q":
break
print A
print len(A)
要整理多行,请执行以下操作
data = []
while True:
A = raw_input("Please input text here (Q to quit)")
if len(A) == 1 and A[0].lower() == "q":
break
data.append(A)
print data
for A in data:
print len(A)
请记住在粘贴后输入换行符。此外,raw_input提示消息可能无法正确显示。
你可能会发疯并管理提示。期望零长度输入意味着用户正在尝试退出。
data = []
prompt = "Please input text (Q to quit):\n"
while True:
if data:
A = raw_input()
else:
A = raw_input(prompt)
while len(A) == 0:
A = raw_input(prompt)
if len(A) == 1 and A[0].lower() == "q":
break
data.append(A)
for A in data:
print "%s - %i" % (A, len(A))
答案 1 :(得分:0)
sys.stdin
对象有read
方法。默认情况下,方法读取到文件末尾。
>>> import sys
>>> file_content = sys.stdin.read() # press CTRL+D to close stdin
您可以使用以下方式阅读有关此方法的更多信息:
>>> help(sys.stdin.read)
或者
>>> help(sys.read)
答案 2 :(得分:0)
感谢Graeme的帮助,你解决了我的问题。
对任何可以帮助我理解这一点的人来说,我无法理解的一件事是为什么下面的代码遍历输入中的所有行。我正在阅读它的方式代码只是无限地将输入的第一行附加到数据。
data = []
while True:
A = raw_input("Please input text here (Q to quit)")
if len(A) == 1 and A[0].lower() == "q":
break
data.append(A)
print data
for A in data:
print len(A)
再次感谢。