首页 > 解决方案 > 为什么我会收到 +: float 和 str 不支持的错误?

问题描述

我对编程很陌生,遇到了问题。

Traceback (most recent call last):
  File "C:/Users/aecas/AppData/Local/Programs/Python/Python38-32/Project.py", line 24, in <module>
    finalpay = usercommission + userpay
TypeError: unsupported operand type(s) for +: 'float' and 'str'

我写的程序是:

#Prompt user for name
username = input("What is your employee name?")

#Prompt user to enter number of hours worked
userhours = input("Please enter number of hours worked this week: ")


#Prompt user for weekly sales
usersales = input("Enter weekly sales amount:")

commission = float(usersales)

#calculate the commission (.2*user sales input)
usercommission = (20/100) * commission

#hourly rate which I establish
rate = 15

#User pay before commmission
userpay=  (rate * userhours)

#Compute total pay for user
finalpay = usercommission + userpay

print(name, "Your total pay is: ",finalpay)

标签: pythontypeerror

解决方案


input正在返回一个字符串,而不是一个浮点数。usersales被强制转换为 a float(),但从userhours未被强制转换。

另外,在最后一行,name将是未定义的,认为它需要是username

尝试这个:

#!/usr/bin/python3
#Prompt user for name
username = input("What is your employee name?")

#Prompt user to enter number of hours worked
userhours = float(input("Please enter number of hours worked this week: "))


#Prompt user for weekly sales
usersales = input("Enter weekly sales amount:")

commission = float(usersales)

#calculate the commission (.2*user sales input)
usercommission = (20/100) * commission

#hourly rate which I establish
rate = 15

#User pay before commmission
userpay=  (rate * userhours)

#Compute total pay for user
finalpay = usercommission + userpay


print(username, "Your total pay is: ",finalpay)

推荐阅读