You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现员工周工时统计排序功能相关问题咨询

员工每周工时统计Python实现方案

实现思路

  • 用字典结构存储员工数据,键为员工姓名/编号,值可同时存储7天原始工时和总工时,方便后续扩展其他统计需求
  • 输入环节添加合法性校验,确保输入为有效数字且工时在0-24的合理区间内
  • 总工时直接对7天工时列表求和即可,排序调用Python内置sorted方法指定排序规则实现降序排列

手动输入工时版本代码

def main():
    emp_count = int(input("请输入员工总人数:"))
    # 存储所有员工工时数据
    emp_work_info = {}

    for i in range(emp_count):
        emp_name = input(f"\n请输入第{i+1}名员工的姓名/编号:")
        daily_hours = []
        # 循环录入7天工时
        for day_idx in range(7):
            while True:
                try:
                    hour = float(input(f"请输入{emp_name}第{day_idx+1}天的工时:"))
                    if 0 <= hour <= 24:
                        daily_hours.append(hour)
                        break
                    print("工时不合法,需在0-24区间内,请重新输入")
                except ValueError:
                    print("输入不是有效数字,请重新输入")
        # 计算总工时并存入字典
        total_hour = sum(daily_hours)
        emp_work_info[emp_name] = {
            "daily": daily_hours,
            "total": total_hour
        }
    
    # 按总工时降序排序
    sorted_result = sorted(emp_work_info.items(), key=lambda x: x[1]["total"], reverse=True)

    # 输出结果
    print("\n===== 员工总工时排行(降序)=====")
    for rank, (name, info) in enumerate(sorted_result, 1):
        print(f"第{rank}名:{name},总工时:{info['total']:.1f}小时")

if __name__ == "__main__":
    main()

CSV文件导入版本(已有表格数据时使用)

如果工时已经存储在CSV表格中,不需要手动输入,可以使用下方简化版本,假设CSV结构为:第一列是员工姓名,第2-8列依次为7天工时:

import csv

emp_total_list = []
with open("员工工时表.csv", "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    # 如果CSV有表头,取消下一行注释跳过表头
    # next(reader)
    for row in reader:
        name = row[0]
        daily_hour = list(map(float, row[1:8]))
        total = sum(daily_hour)
        emp_total_list.append((name, total))

# 降序排序后输出
for name, total in sorted(emp_total_list, key=lambda x:x[1], reverse=True):
    print(f"{name} 总工时:{total:.1f}")

内容的提问来源于stack exchange,提问作者Erez2Go Prod.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:54:03