在C++中,我可以接受这样的输入:
cin >> a >> b >> c;
并且a
可以int
,b
可以float
,并且可以是任何东西......我如何在pythonc
中做同样的事情?
input()
而且raw_input()
,我使用它们的方式似乎并没有给我想要的结果。
您通常不应该input()
在生产代码中使用。如果你想要一个int
然后是一个float
,试试这个:
>>> line = raw_input().split()
>>> a = int(line[0])
>>> b = float(line[1])
>>> c = " ".join(line[2:])
这一切都取决于您到底想要完成什么,但请记住可读性很重要。晦涩的单行代码可能看起来很酷,但面对可维护性,请尝试选择明智的东西:)
(PS:不要忘记检查错误try: ... except (ValueError, IndexError):
)
由于 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
根据您在做什么,getopt模块之类的东西可能很有用,但仅在某些情况下,我不确定它是否适用于您的情况。