2013-10-27 57 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]