2

C++中,我可以接受这样的输入:

cin >> a >> b >> c;

并且a可以intb可以float,并且可以是任何东西......我如何在pythonc中做同样的事情?

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

4

3 回答 3

4

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

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

这一切都取决于您到底想要完成什么,但请记住可读性很重要。晦涩的单行代码可能看起来很酷,但面对可维护性,请尝试选择明智的东西:)

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

于 2008-09-17T23:12:21.930 回答
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
于 2008-09-17T23:35:49.297 回答
0

根据您在做什么,getopt模块之类的东西可能很有用,但仅在某些情况下,我不确定它是否适用于您的情况。

于 2008-09-17T23:12:46.217 回答