如何用Python计算员工周薪?新手求助修正代码错误
Python员工周薪计算代码修正
你的代码里存在语法和逻辑问题,下面是修正方案及问题说明:
原代码的问题点:
- 输入类型错误:将用户输入转为字符串
str,无法和数字做大小比较,需转为整数int或浮点数float - if语句语法缺失:Python中if条件后必须加冒号
:,否则会触发语法错误 - 缩进错误:最后一行
print的缩进位置不对,未与对应代码块对齐 - 变量未定义风险:若工作时长≤40小时,
reg_salary变量未定义,执行print会报错;第一个if块的salary也没有输出逻辑
修正后的代码:
# 将输入转为整数,支持整数小时计算(若需小数小时可改为float) work_hours = int(input('Enter hours worked: ')) total_salary = 0 if work_hours <= 40: total_salary = 20 * work_hours else: # 拆分正常薪资和加班薪资,逻辑更清晰 regular_pay = 20 * 40 overtime_pay = 30 * (work_hours - 40) total_salary = regular_pay + overtime_pay # 统一输出计算结果 print(total_salary)
修正说明:
- 输入转为
int确保能和数字进行比较,若需支持半工时(如42.5小时),可替换为float(input(...)) - 用
if-else替代两个独立if,避免重复判断,逻辑更严谨 - 统一使用
total_salary存储结果,无论哪种情况都能正常输出 - 保持代码块缩进一致(Python用缩进区分代码块,通常为4个空格)
内容的提问来源于stack exchange,提问作者caseynicole
相关产品推荐
相关产品推荐

