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

2 投票
3 回答
9331 浏览
提问于 2025-04-16 02:40

你好,我正在学习Python。

在C++中,从标准输入读取字符串我只需要这样做:

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

但是在Python中,我得用:

line = raw_input()

然后

x = line.split()

接着我还得循环遍历列表x,才能访问每个字符串,去执行do_something(str)

这看起来光是为了获取每个用空格分隔的字符串就要写这么多代码,难道没有更简单的方法吗?

3 个回答

0

其实没有什么“更简单”的方法,因为Python没有像C++那样自带的格式化字符串功能,比如用iostream

不过,你可以通过把操作合并在一起,来让你的代码变得更简洁:

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

在编程中,有时候我们会遇到一些问题,想要找到解决办法。比如说,可能会有一些错误信息或者代码不按预期工作。这个时候,我们可以去一个叫StackOverflow的网站上寻求帮助。这个网站上有很多程序员分享他们的经验和解决方案。

当你在StackOverflow上提问时,记得把问题描述清楚,最好附上相关的代码片段,这样别人才能更好地理解你的问题并给出建议。大家在这个平台上互相帮助,分享知识,所以提问时要礼貌,感谢那些愿意帮助你的人。

总之,StackOverflow是一个很好的资源,可以帮助你解决编程中的各种问题,只要你善于利用它。

map(do_something, line.split())
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)

撰写回答