在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模块之类的东西可能很有用,但仅在某些情况下,我不确定它是否适用于您的情况。