2013-10-27 83 views
-2

我寫了下面的函數,每次迭代後都改變它的參數。在每次迭代後更改函數的參數時迭代(python)

def thresh (*val): 
    for x in val: 
     return float(x)/100 * 10000.0 

print thresh (15,20) 

輸出:TypeError: float() argument must be a string or a number

Desired output: 1500.0, 2000.0 

感謝您的建議。

+0

什麼計算產生該輸出? –

+3

這裏沒有迭代,也沒有變化。目前尚不清楚你想要完成什麼。 – BrenBarn

+0

你的問題不清楚,請嘗試改進。 –

回答

2

*vallisttuplefloat()只能解析strfloat而不是tuples

該代碼片段遍歷*val並返回計算值的列表。

def thresh (*val): 
    return [float(one_val)/100 * 10000.0 for one_val in val] 
+2

'* val'是一個元組。 –

+0

非常感謝@OdraEncoded,我現在明白了我在代碼中所做的錯誤。 – Tiger1

+0

@ Tiger1如果這解決了你的問題,請接受它(大灰色複選框)如果它沒有解決你的問題,但指出你在正確的方向,請寫你的問題的解決方案作爲你自己的問題的答案。 – tacaswell

1

您需要遍歷val,因爲它有多個值。也除以100乘以10000與乘以100相同。

def thresh (*val): 
    return [x*100.0 for x in val] 

>>> print thresh(15,20) 
[1500.0, 2000.0]