在Python中,如何使用标记化输入(例如C ++)?

时间:2020-03-06 14:19:21  来源:igfitidea点击:

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

cin >> a >> b >> c;

并且a可以是int,b可以是float,而c可以是任何东西...我该如何在python中做同样的事情?

input()和raw_input()(我使用它们的方式)似乎并没有给我想要的结果。

解决方案

通常,我们不应该在生产代码中使用" input()"。如果我们想要一个int然后是一个float,请尝试以下操作:
`

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

`

这完全取决于我们要完成的工作,但请记住,可读性很重要。晦涩的单线似乎很酷,但面对可维护性,请尝试选择明智的方法:)

(PS:不要忘了尝试尝试以下错误:...(ValueError,IndexError):除外)

根据工作,类似getopt模块的功能可能会有用,但仅在某些情况下,我不确定它是否适用于情况。

由于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