运行下面的代码时遇到以下错误。
Traceback (most recent call last):
File "C:\Users\ladyj\AppData\Local\Programs\Python\Python37-32\bv.py", line 5, in <module>
earnings=str(base_salary*commission_rate)
TypeError: can't multiply sequence by non-int of type 'str'
base_salary = input(str('what is your base salary'))
commission_rate = input(str('what is your commission rate'))
earnings=str(base_salary*commission_rate)
print(earnings)
答案 0 :(得分:0)
input将始终返回字符串,但是如果要使用它进行计算,则需要将其转换为数字。 float()函数将为您完成此操作。如果输入的值不是数字,则将出现ValueError。如果要检查此错误,可以使用try / except构造来捕获错误。
这是一些使用浮点数来完成您要尝试执行的工作的代码。
base_salary = float(input('What is your base salary? '))
commission_rate = float(input('What is your commission rate? '))
earnings = base_salary * commission_rate
print(f'{earnings:.2f}')
顺便说一句,我在佣金计算方面做了很多工作,我不确定我会以您的方式描述佣金率。通常我们谈论的是拆分,例如60/40,其中60%是基数,40%是佣金,在这种情况下,总收入的计算将是base / .6,但是您的解释可能有所不同。当我提到佣金率时,通常是以佣金形式支付的总销售额的百分比。