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)