如何简单地从标准输入读取由空格或空格分隔的输入
你好,我正在尝试学习Python, 在 C++ 中,从 stdin 读取字符串我只是这样做
string str;
while (cin>>str)
do_something(str)
,但在 python 中,我必须使用
line = raw_input()
then
x = line.split()
然后我必须循环遍历列表 x 来访问每个 str 到 do_something(str)
这看起来很多代码只是为了获取由空格或空格分隔的每个字符串 所以我的问题是,有没有更简单的方法?
Hello I'm a trying to learn python,
In C++ to read in string from stdin I simply do
string str;
while (cin>>str)
do_something(str)
but in python, I have to use
line = raw_input()
then
x = line.split()
then I have to loop through the list x to access each str to do_something(str)
this seems like a lot of code just to get each string delimited by space or spaces
so my question is, is there a easier way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Python 不会为您特殊处理这种特定形式的输入,但是为其创建一个小生成器当然很简单:
然后,在您的应用程序代码中,您使用
for
语句进行循环(通常是在应用程序代码级别循环的最佳方法):Python doesn't special-case such a specific form of input for you, but it's trivial to make a little generator for it of course:
and then, in your application code, you loop with a
for
statement (usually the best way to loop at application-code level):确实没有一种“更简单”的方法,因为 Python 没有像 C++ 的 iostream 那样的内置格式化字符串函数。
也就是说,您可以通过组合操作来缩短代码:
There isn't really an "easier" way, since Python doesn't have built-in formatted string functions like C++ does with
iostream
.That said, you could shorten your code by combining the operations: