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吧。文章来源:https://www.toymoban.com/news/detail-817163.html
注:小蜜蜂AI文章来源地址https://www.toymoban.com/news/detail-817163.html
到了这里,关于GPT帮我快速解决工作上的问题案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!