您好我是在尝试学习python, 在C ++中从stdin读取字符串我只是做
string str;
while (cin>>str)
do_something(str)
但是在python中,我必须使用
line = raw_input()
然后
x = line.split()
然后我必须循环遍历列表x以访问每个str到do_something(str)
这似乎是为了让每个字符串用空格或空格分隔的许多代码 所以我的问题是,有更简单的方法吗?
答案 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())