如果我有变量:小时,分钟和秒分别代表工作小时数,工作分钟数和工作秒数,我如何计算工资的工资,x
这就是我所拥有的:
rate = (hours*x) + (minutes*x)*0.1 + (seconds*x)*0.01
但是我收到了这个错误:
TypeError: can't multiply sequence by non-int of type 'float'
我认为这可能是公式中的混乱,但我不确定它是什么
答案 0 :(得分:3)
minutes
或x
不是整数;很可能你在那里有一个字符串:
>>> minutes = 5
>>> x = '10'
>>> minutes * x
'1010101010'
>>> (minutes * x) * 0.1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
确保您的输入都是数字。
请注意,您的每小时费率公式似乎不太正确;我将其计算为:
rate = (hours + (minutes / 60.0) + (seconds / 3600.0)) * x
因为一小时有60分钟,而且有3600秒。
答案 1 :(得分:0)
我对Python的经验很少,但我会对它进行一次尝试。您正在尝试将数字乘以非数字。假设字符串x
“代表”有效数字,您可以将其转换为float
或int
。试试这个:
x = float(x);
rate = (hours * x) + (minutes * x * (1.0/60)) + (seconds * x * (1.0/3600))