python只识别我输入的第一行
使用此代码:python只识别我输入的第一行,python,input,Python,Input,使用此代码: A = raw_input("Please input text here") print A print len(A) 对于输入,当我从记事本复制和粘贴时,它只识别以下内容的第一行: Cars are fast Motorcycles are faster Planes are even faster 因此,print A将print“Cars is fast”和print len(A)与print 13,即“Cars is fast”的长度 如何让Python识别我的输
A = raw_input("Please input text here")
print A
print len(A)
对于
输入
,当我从记事本复制和粘贴时,它只识别以下内容的第一行:
Cars are fast
Motorcycles are faster
Planes are even faster
因此,
print A
将print
“Cars is fast”和print len(A)
与print 13
,即“Cars is fast”的长度
如何让Python识别我的输入的剩余行
谢谢。将只读取一行输入
有关从命令行获取输入的一般概述,请参见的答案
如果您想使用原始输入,那么一个循环将读取您的所有行,但您需要一种方法来中断,类似这样的事情
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)
请记住在粘贴后输入换行符。此外,原始输入提示消息可能无法正确显示
你可能会发疯,并管理提示。预期长度为零的输入意味着用户正在尝试退出
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))
有
sys.stdin
对象具有read
方法。默认情况下,方法读取到文件末尾
>>> import sys
>>> file_content = sys.stdin.read() # press CTRL+D to close stdin
您可以通过以下方式了解有关此方法的更多信息:
>>> help(sys.stdin.read)
或
谢谢格雷姆的帮助,你解决了我的问题 对于任何能帮助我理解这一点的人来说,有一件事我不能理解,那就是为什么下面的代码会在输入中的所有行中循环。按照我的阅读方式,代码只是无限地将输入的第一行附加到数据中
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)
再次感谢。在循环中调用函数?可能我太密集了,但我不知道如何在多行输入上循环。有不同的输入函数可以读取多行吗?没有,但您可以用建议的形式编写自己的函数。感谢您花时间回复。我可能错了,但你建议我这样做的方式需要我手动输入每行文本,不是吗?我想做的是输入任意数量的行,然后让python返回字符串列表,这样列表[0]将是第一行,列表[1]将是第二行,等等。您可以一次复制和粘贴多行,程序将依次读取每行。您可能希望在处理之前将所有数据收集到一个列表中。与此稍有不同的是,可以使用“”(空白字符串)作为哨兵,而不是“q”,这取决于您的要求。但是AFAIK Python没有内置的多行读取。通常,您不应该在回答中提出问题。也就是说,您的问题的答案是:只要
True
为True,它就会循环,这是永远的,但当用户输入为“Q”或“Q”时,它就会中断循环。谢谢您的帮助。我知道True永远都是True,当用户输入q时它会中断,但我不明白的是函数如何知道它应该在每次循环时向下移动一行。我不知道代码的哪一部分告诉函数移到下一行。我不确定你的意思。
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)