我知道您可以使用raw_input()
函数从stdin获取一行。但是如果我不知道我必须得到的线数呢?
我知道我可以导入' sys'然后使用while循环获取所有行,但有没有类似的方法使用raw_input()
完成此类任务?
答案 0 :(得分:2)
这可能很简单:
while(raw_input()):
#print "I received input"
#Do some processing here
#terminates when user hits enter without any text.
根据Python文档,""
(空字符串)被视为False
。因此,当用户没有输入任何内容时,循环终止。
或者,如果您想要用户输入的输入,则可以使用:
while True:
text = raw_input()
if not text:
break
#Do some processing here
或者,如果您想指定其他一些断点,那么您可以检查while
循环内的条件:
break_word = "q"
while True:
text = raw_input()
if text == break_word:
break
#Do some processing here
答案 1 :(得分:1)
如果您想存储数据,请考虑使用list
。
在循环中读取值。如果您从循环中获得空行break
,则将输入的数据添加到列表中。
data = []
while True:
line = raw_input()
if not line:
break()
data.append(line)
答案 2 :(得分:1)
如果要存储所有行,可以使用list comp:
for line in iter(lambda: raw_input("enter line or 'q' to quit"), "q"):
print(line)
或使用循环:
q
当用户输入iter
时,循环将中断。 while True:
inp = raw_input("Enter line or 'q' to quit")
if inp == "q":
break
的第二个参数是一个标记值,无论您提供什么,因为该值可以在用户输入时中断循环。
使用iter相当于:
timeLimit
更简洁。