您好,我正在尝试学习 python,在 C++ 中从标准输入读取字符串,我只是这样做
string str;
while (cin>>str)
do_something(str)
但在python中,我必须使用
line = raw_input()
然后
x = line.split()
然后我必须遍历列表 x 以访问每个 str 到do_something(str)
这似乎有很多代码只是为了让每个字符串用空格或空格分隔,所以我的问题是,有没有更简单的方法?
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)
没有真正“更简单”的方法,因为 Python 没有像 C++ 那样内置的格式化字符串函数iostream。
也就是说,您可以通过组合操作来缩短代码:
for str in raw_input().split():
do_something(str)
map(do_something, line.split())