python - 如何简单地从标准输入读取由空格或空格分隔的输入

标签 python stdin raw-input

你好,我正在尝试学习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 - 如何简单地从标准输入读取由空格或空格分隔的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464212/

相关文章:

python退出阻塞线程?

Python:当陷入阻塞 raw_input 时如何退出 CLI?

python - 该问题要求根据字典检查列表并在列表中未出现在字典中的项目之前添加 *

php - 警告 : fgets() expects parameter 1 to be resource, 中给出的字符串

C - 从单行给出回文列表

python - 在 Pycharm 中使用 sys.stdin 从文件中读取

Python/MySQL查询错误: `Unknown column`

python - reshape 多索引 Pandas 数据框

python - 如何使用numpy获取没有对角线的三角形上矩阵

python - 我可以在程序运行时更改 raw_input 光标的位置吗? - Python