如何简单地读取用空格分隔的标准输入
你好,我正在学习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)