2012-01-29 41 views
1

我有我認爲是一個令人尷尬的簡單問題,但三個小時的搜索和檢查stackoverflow沒有幫助。使用函數時的字符串格式問題

比方說,我有一個非常簡單的代碼:

def secret_formula(started): 
    jelly_beans = started*500 
    jars = jelly_beans/1000 
    crates = jars/100 
    return jelly_beans,jars,crates 

start_point = 10000 

print("We'd have {} beans, {} jars, and {} crates.".format(secret_formula(start_point))) 

會發生什麼事是我得到的「IndexError:元組索引超出範圍」。所以,我只打印secret_formula功能,看看是什麼樣子,它看起來像這樣:

(5000000, 5000.0, 50.0) 

基本上,它是治療輸出作爲一個「東西」(我還是很新的,對不起,如果我的語言是不正確的)。我的問題是,爲什麼它會這樣對待它,以及如何讓它通過三個輸出(jelly_beans,jarscrates),以便正確格式化字符串?

謝謝!

回答

1

該字符串的format函數採用可變數目的參數。 secret_formula函數返回一個元組。您想將其轉換爲參數列表。這是使用下面的語法來完成:

print("We'd have {} beans, {} jars, and {} crates.".format(*secret_formula(start_point))) 

重要面值爲*字符。它告訴你要將下面的迭代轉換爲傳遞給函數的參數列表。

+0

謝謝!我試圖使用*,但我把它放在錯誤的地方,所以我放棄了。 – popwat 2012-01-29 23:42:55