如何用Python制作简易DTR(每日考勤记录)系统?新手求助
简易DTR系统实现方案
1. 扩展输入逻辑
先把你已实现的姓名输入,扩展为获取所有需要的信息:周一至周六的工作时长、时薪,注意将输入转换为数值类型(float)以便计算。
示例代码:
# 获取员工姓名 employee_name = input("请输入员工姓名:") # 循环获取每日工作时长 daily_hours = [] work_days = ["周一", "周二", "周三", "周四", "周五", "周六"] for day in work_days: # 输入转成浮点型,支持小数时长 hour = float(input(f"请输入{day}的工作时长:")) daily_hours.append(hour) # 获取时薪 hourly_wage = float(input("请输入员工时薪:"))
2. 核心计算逻辑
总工作时长直接用sum()方法对每日时长列表求和,总毛收入则是总时长乘以时薪。
示例代码:
# 计算总工作时长 total_work_hours = sum(daily_hours) # 计算总毛收入 total_gross_income = total_work_hours * hourly_wage
3. 结果输出
把计算结果格式化输出,让信息展示更清晰:
示例代码:
print("\n=== 每日考勤记录汇总 ===") print(f"员工姓名:{employee_name}") # 保留两位小数,格式更规范 print(f"总工作时长:{total_work_hours:.2f} 小时") print(f"总毛收入:{total_gross_income:.2f} 元")
完整整合代码
把以上部分组合起来就是完整程序,还可以加简单的输入验证(可选,防止用户输入非数字):
# 获取员工姓名 employee_name = input("请输入员工姓名:") # 循环获取每日工作时长 daily_hours = [] work_days = ["周一", "周二", "周三", "周四", "周五", "周六"] for day in work_days: while True: try: hour = float(input(f"请输入{day}的工作时长:")) daily_hours.append(hour) break except ValueError: print("请输入有效的数字!") # 获取时薪(带验证) while True: try: hourly_wage = float(input("请输入员工时薪:")) break except ValueError: print("请输入有效的数字!") # 计算核心数据 total_work_hours = sum(daily_hours) total_gross_income = total_work_hours * hourly_wage # 输出结果 print("\n=== 每日考勤记录汇总 ===") print(f"员工姓名:{employee_name}") print(f"总工作时长:{total_work_hours:.2f} 小时") print(f"总毛收入:{total_gross_income:.2f} 元")
你可以分步测试每一段代码,先确保输入逻辑正常,再验证计算和输出部分,这样更容易排查问题。
内容的提问来源于stack exchange,提问作者Kentrave Ang
相关产品推荐
相关产品推荐

