为什么我的Python代码无法输出浮点类型的Pay值?
代码问题排查与修复
现有代码的错误点
- 核心问题是输出语句语法错误:你写的
print ('Your pay is'), + Pay括号位置错误,Pay变量被放在了print函数的参数括号外,根本不会被传入打印逻辑,这是无法输出Pay值的主要原因 - 其次加班费计算逻辑有误:当前逻辑对超出40小时的部分重复计算了基础薪资,会导致薪资结果偏高
- 冗余操作:
float(h)没有赋值给变量,后续多次重复转float属于无效操作
修复后的完整代码
# h:工时, oth:加班工时, pr:基础时薪, otpr:加班时薪 # 读取输入直接转换为float类型存储,避免后续重复转换 h = float(input("输入工作时长:")) pr = 10.00 otpr = pr * 1.5 if h > 40: # 40小时内按基础薪,超出部分按加班薪计算 pay = 40 * pr + (h - 40) * otpr else: pay = h * pr print(f"你的薪资为:{pay}") # 如果需要明确保留两位小数输出可以用下面的写法 # print("你的薪资为:%.2f" % pay)
验证说明
- 输入小于等于40的数值时,会输出按基础时薪计算的浮点型薪资
- 输入大于40的数值时,会自动计算加班薪资,输出结果也为浮点类型
内容的提问来源于stack exchange,提问作者Grelm
相关产品推荐
相关产品推荐

