GPT帮我快速解决工作上的问题案例


Python入门容易,但精通不易。自从跟着郭老师学Python后,工作中也想偷点懒,之前排班表的问题一直困扰着我,福音来了,现在随着郭老师的小蜜蜂AI出来,说干就干。马上来到郭老师为我们提供的AI网站:http://zglg.work/index.html,选择AI智能问答,输入我想问的问题:

用python帮我写一个排班表,其中人数不定,有三种班期,按月份来输出。
好的,我可以帮你生成一个按日期排列的一个月排班表。请注意,下面的代码示例假设每个月都是30天,并且使用了三种班期轮班。
import datetime

def generate_monthly_schedule(employees, month, start_day):
    schedules = []
    shifts = ['班期1', '班期2', '班期3']  # 三种班期
    days_in_month = 30  # 假设每个月都是30天

    for i, employee in enumerate(employees):
        schedule = {'姓名': employee}
        current_date = start_day

        for day in range(days_in_month):
            shift = shifts[day % len(shifts)]
            schedule[current_date.strftime('%Y-%m-%d')] = shift
            current_date += datetime.timedelta(days=1)

        schedules.append(schedule)

    return schedules


# 示例使用
employee_list = ['张三', '李四', '王五']  # 员工名单
month = 9  # 月份
start_day = datetime.date(2022, month, 1)  # 开始日期

schedule_list = generate_monthly_schedule(employee_list, month, start_day)

# 输出结果
for schedule in schedule_list:
    print(schedule)
若两天才换一次班呢
import datetime


def generate_monthly_schedule(employees, month, start_day, days_in_month):
    schedules = []
    shifts = ['班期1', '班期2', '班期3']  # 三种班期
    days_in_month = days_in_month  # 假设每个月都是30天
    days_per_shift = 2  # 每两天轮一次班

    for i, employee in enumerate(employees):
        schedule = {'姓名': employee}
        current_date = start_day + datetime.timedelta(days=i * days_per_shift)  # 根据员工顺序错开日期
        shift_index = (i // (days_per_shift * len(shifts))) % len(shifts)  # 根据员工顺序错开班期

        for day in range(days_in_month):
            shift = shifts[shift_index]
            schedule[current_date.strftime('%Y-%m-%d')] = shift

            current_date += datetime.timedelta(days=1)
            if (day + 1) % days_per_shift == 0:
                shift_index = (shift_index + 1) % len(shifts)

        schedules.append(schedule)

    return schedules


# 示例使用
employee_list = ['员工1', '员工2', '员工3']  # 员工名单
month = 1  # 月份
start_day = datetime.date(2024, month, 1)  # 开始日期

schedule_list = generate_monthly_schedule(employee_list, month, start_day, 31)

# 输出结果
for schedule in schedule_list:
    print(schedule)

在这个修改过的代码中,我们添加了一个 days_per_shift 变量来表示每几天换一次班。在遍历每天生成排班表时,通过 (day+1) % days_per_shift == 0 判断是否需要换班。如果需要换班,我们将 shift_index 增加1,并使用取模运算符 % 来确保在三种班期之间循环。

请注意,在这个示例中,我们仍然假设每个月是30天。如果实际情况中月份的天数不同,请相应地调整 days_in_month 变量的值。

三下五除二,马上AI就帮我写出来了,前后1分钟不到就帮我解决了问题。看来以后较量的不是知识面的宽广,而是使用AI的好坏的。各位看观,赶快来跟着郭老师一起来学习AI吧。

注:小蜜蜂AI

你可能感兴趣的:(gpt)