在 Python 中,您如何获取标记化输入,例如使用 C++?

In Python, how do you take tokenized input such as with the C++?

提问人:user10096 提问时间:9/18/2008 最后编辑:Azat Ibrakovuser10096 更新时间:12/23/2018 访问量:2042

问:

C++ 中,我可以像这样输入:

cin >> a >> b >> c;

可以是,可以是,可以是任何东西......如何在 python 中做同样的事情?aintbfloatc

input()而且,我使用它们的方式似乎并没有给我带来预期的结果。raw_input()

C++ Python 输入

评论

0赞 Glyph 9/22/2008
您能否更好地描述您从 raw_input() 中获得的结果中哪些不“期望”?这听起来和你在这里应该想要的一模一样。

答:

4赞 2 revs, 2 users 71%bb #1

通常不应在生产代码中使用。如果你想要一个,然后一个,试试这个:input()intfloat

>>> line = raw_input().split()
>>> a = int(line[0])
>>> b = float(line[1])
>>> c = " ".join(line[2:])

这完全取决于您到底要完成什么,但请记住,可读性很重要。晦涩难懂的单行字可能看起来很酷,但面对可维护性,请尝试选择一些明智的:)

(P.S.:不要忘记检查错误try: ... except (ValueError, IndexError):)

0赞 Paul Wicks 9/18/2008 #2

根据您正在做的事情,像 getopt 模块这样的东西可能有用,但仅限于某些情况,我不确定它是否适用于您的。

3赞 S.Lott 9/18/2008 #3

由于 C++ cin 从 sys.stdin 读取,因此您通常会执行以下操作。

import sys
tokens= sys.stdin.read().split()
try:
   a= int(token[0])
   b= float(token[1])
except ValueError, e:
   print e # handle the invalid input