如何简单地读取由空格或空格分隔的标准输入的输入

时间:2010-08-12 01:54:32

标签: python stdin raw-input

您好我是在尝试学习python, 在C ++中从stdin读取字符串我只是做

string str;
while (cin>>str)
    do_something(str)

但是在python中,我必须使用

line = raw_input()

然后

x = line.split()

然后我必须循环遍历列表x以访问每个str到do_something(str)

这似乎是为了让每个字符串用空格或空格分隔的许多代码 所以我的问题是,有更简单的方法吗?

3 个答案:

答案 0 :(得分:6)

Python并没有特殊情况下为您提供这样一种特定形式的输入,但当然要为它制作一个小型生成器是微不足道的:

def fromcin(prompt=None):
  while True:
    try: line = raw_input(prompt)
    except EOFError: break
    for w in line.split(): yield w

然后,在您的应用程序代码中,使用for语句循环(通常是在应用程序代码级别循环的最佳方法):

for w in fromcin():
  dosomething(w)

答案 1 :(得分:0)

实际上没有“更简单”的方法,因为Python没有像C ++那样的内置格式化字符串函数iostream

也就是说,您可以通过组合操作来缩短代码:

for str in raw_input().split():
   do_something(str)

答案 2 :(得分:0)

map(do_something, line.split())