2008-09-17 27 views
2

在C++中,我可以採取如下輸入:在Python中,如何使用標記化輸入(例如C++)?

cin >> a >> b >> c;

而且可以是int,b可以是float,c可以是任何......我如何在python中做同樣的事情?

input()和raw_input(),我用它們的方式,似乎沒有給我想要的結果。

+0

你能否更好地描述你從raw_input()得到的結果是不是「所需的」?這聽起來很像你應該在這裏想要的。 – Glyph 2008-09-21 17:01:39

回答

4

您通常不應在生產代碼中使用input()。如果你想要一個int然後一個浮點數,試試這個:

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

這一切都取決於你想要完成什麼,但要記住可讀性是重要的。模糊的單線看起來很酷,但面對可維護性,請嘗試選擇合適的東西:)

(PS:不要忘記用try來檢查錯誤:... except(ValueError,IndexError):)

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 
相關問題