在Python中,如何使用C ++进行标记化输入?

时间:2008-09-17 23:06:22

标签: c++ python input

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

cin >> a >> b >> c;

a可以是intb可以是floatc也可以是......我如何在< EM>蟒

input()raw_input(),我使用它们的方式,似乎没有给我预期的效果。

3 个答案:

答案 0 :(得分:4)

您通常不应在生产代码中使用input()。如果您想要int,然后想要float,请尝试以下操作:

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

这一切都取决于你究竟想要完成什么,但要记住可读性很重要。模糊的单行可能看起来很酷但面对可维护性,尝试选择合理的东西:)

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

的错误

答案 1 :(得分: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

答案 2 :(得分:0)

根据您的操作,getopt模块之类的内容可能会有用,但仅限于某些情况,我不确定它是否适用于您的。