python - 为什么我会收到 +: 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)
解决方案
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)
推荐阅读
- c++ - 0-1 大重量背包
- java - 如何通过 Spring-Expression-Language 或其他方式根据 jobParameters 有条件地注入 bean?
- android - 使用 SQLLite、imageViews 和可回收的 RecyclerView 性能 = false
- python - 是否有可能在 Python 中只获得一定数量的组合?
- java - 为什么我有一个将 int 转换为 Integer JAVA 的 ClassCastException
- python - ModuleNotFoundError:没有名为“xgboost.sklearn”的模块
- ios - 如何为每个伊斯兰祈祷倒计时
- c# - 将数组的元素除以 2 次 k 次,以使数组的和最小化
- sql - 如何修复 ER-Diagram 中的冗余?
- gnuplot - 如何使用gnuplot添加带有标签的垂直线?