在Python中如何获取类似C++的标记化输入?
在 C++ 中,我可以这样输入数据:
cin >> a >> b >> c;
而且 a
可以是 int
(整数),b
可以是 float
(浮点数),c
可以是任何类型的东西……我该如何在 python 中做到这一点呢?
我用的 input()
和 raw_input()
似乎没有给我想要的结果。
3 个回答
0
根据你正在做的事情,像getopt这个模块可能会有用,但它只在特定情况下才适用,我不太确定它是否适合你的情况。
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
4
在实际的代码中,一般不建议使用 input()
。如果你需要一个 int
(整数)和一个 float
(浮点数),可以试试下面的方式:
>>> line = raw_input().split()
>>> a = int(line[0])
>>> b = float(line[1])
>>> c = " ".join(line[2:])
具体要实现什么功能,还是要看你的需求,但记住,代码的可读性很重要。那些看起来很酷的复杂一行代码,虽然炫,但在维护代码的时候,最好选择一些简单明了的写法 :)
(顺便说一句:别忘了用 try: ... except (ValueError, IndexError):
来检查错误哦)