"""办公室今日运势生成器综合运用:变量、条件判断、循环、列表、函数、字典"""import randomimport jsonimport datetimefrom collections import defaultdictclass 办公室运势生成器: def __init__(self):"""初始化生成器"""# 基础数据 self.幸运颜色列表 = ["红色", "蓝色", "绿色", "黄色", "紫色", "白色", "黑色"] self.幸运数字列表 = list(range(1, 101))# 运势模板 self.运势等级 = ["大吉", "中吉", "小吉", "平", "小凶", "大凶"] self.宜做事项 = ["主动汇报工作", "整理文档", "学习新技能", "与同事沟通","制定计划", "完成积压任务", "向上级请教", "帮助同事","参加培训", "优化工作流程", "提前完成工作", "复盘总结" ] self.忌做事项 = ["拖延工作", "背后议论同事", "上班迟到", "工作分心","推卸责任", "抱怨领导", "频繁请假", "工作马虎","违反规定", "情绪化工作", "过度加班", "忽视健康" ] self.工作建议 = ["保持专注,效率第一", "注意沟通方式", "劳逸结合","提前规划,避免匆忙", "多听少说", "保持积极心态","注意细节", "主动学习", "团队合作", "及时反馈" ]# 存储每日运势记录 self.运势记录 = {} def 生成今日运势(self, 姓名, 职位="教师", 心情="一般"):"""生成今日运势"""# 随机选择各项内容 运势等级 = random.choice(self.运势等级) 幸运颜色 = random.choice(self.幸运颜色列表) 幸运数字 = random.choice(self.幸运数字列表)# 随机选择2-4项宜做和忌做事项 今日宜做 = random.sample(self.宜做事项, random.randint(2, 4)) 今日忌做 = random.sample(self.忌做事项, random.randint(2, 4)) 今日建议 = random.choice(self.工作建议)# 根据运势等级生成评语 运势评语 = self.生成运势评语(运势等级)# 获取当前日期 当前日期 = datetime.datetime.now().strftime("%Y-%m-%d %A")# 构建运势字典 今日运势 = {"date": 当前日期,"name": 姓名,"position": 职位,"mood": 心情,"fortune_level": 运势等级,"lucky_color": 幸运颜色,"lucky_number": 幸运数字,"should_do": 今日宜做,"avoid_do": 今日忌做,"advice": 今日建议,"comment": 运势评语,"generated_time": datetime.datetime.now().strftime("%H:%M:%S") }# 保存记录 self.运势记录[当前日期] = 今日运势return 今日运势 def 生成运势评语(self, 运势等级):"""根据运势等级生成评语""" 评语库 = {"大吉": "今天是充满机遇的一天!工作顺利,人际关系和谐,适合推进重要项目。","中吉": "整体运势不错,工作中可能有小惊喜。保持积极态度,会有好结果。","小吉": "平稳的一天,按计划行事即可。注意细节,避免小失误。","平": "运势一般,宜守不宜攻。做好本职工作,避免冒险决策。","小凶": "今天可能遇到小挫折,保持冷静。注意沟通,避免误会。","大凶": "今天挑战较多,需特别谨慎。多检查工作,避免出错。" }return 评语库.get(运势等级, "保持平常心,认真工作。") def 显示运势(self, 运势数据):"""格式化显示运势"""print("\n" + "="*50)print(f"📅 办公室今日运势 - {运势数据['date']}")print("="*50)print(f"👤 姓名:{运势数据['name']}")print(f"💼 职位:{运势_data['position']}")print(f"😊 心情:{运势_data['mood']}")print(f"🎯 运势等级:{运势_data['fortune_level']}")print(f"🎨 幸运颜色:{运势_data['lucky_color']}")print(f"🔢 幸运数字:{运势_data['lucky_number']}")print("\n✅ 今日宜做:")for i, 事项 in enumerate(运势_data['should_do'], 1):print(f" {i}. {事项}")print("\n❌ 今日忌做:")for i, 事项 in enumerate(运势_data['avoid_do'], 1):print(f" {i}. {事项}")print(f"\n💡 工作建议:{运势_data['advice']}")print(f"\n📝 运势评语:{运势_data['comment']}")print(f"\n⏰ 生成时间:{运势_data['generated_time']}")print("="*50) def 保存运势(self, 运势数据, 文件名=None):"""保存运势到文件"""if 文件名 is None: 文件名 = f"{运势数据['name']}_{运势数据['date'].split()[0]}_运势.json" with open(文件名, 'w', encoding='utf-8') as f: json.dump(运势数据, f, ensure_ascii=False, indent=2)print(f"✅ 运势已保存到:{文件名}")return 文件名 def 记录心情和工作(self, 日期, 心情, 工作状态, 完成事项):"""记录每日心情和工作状态"""if 日期 not in self.运势记录:print(f"⚠️ {日期}没有运势记录,请先生成运势")return False self.运势记录[日期].update({"实际心情": 心情,"工作状态": 工作状态,"完成事项": 完成事项,"记录时间": datetime.datetime.now().strftime("%H:%M:%S") })print(f"✅ 已记录{日期}的工作状态")return True def 生成周报(self, 开始日期, 结束日期):"""生成一周运势和工作总结"""print(f"\n📊 周报统计:{开始日期} 至 {结束日期}")print("="*60) 总天数 = 0 心情统计 = defaultdict(int) 运势统计 = defaultdict(int) 完成事项总计 = []for 日期, 记录 in self.运势记录.items(): 记录日期 = 日期.split()[0]if 开始日期 <= 记录日期 <= 结束日期: 总天数 += 1# 统计心情if"实际心情"in 记录: 心情统计[记录["实际心情"]] += 1# 统计运势 运势统计[记录["fortune_level"]] += 1# 收集完成事项if"完成事项"in 记录: 完成事项总计.extend(记录["完成事项"])# 显示统计结果print(f"📅 统计天数:{总天数}天")if 心情统计:print("\n😊 心情分布:")for 心情, 天数 in 心情统计.items(): 占比 = (天数 / 总天数) * 100print(f" {心情}:{天数}天 ({占比:.1f}%)")if 运势统计:print("\n🎯 运势分布:")for 运势, 天数 in 运势统计.items(): 占比 = (天数 / 总天数) * 100print(f" {运势}:{天数}天 ({占比:.1f}%)")if 完成事项总计:print(f"\n✅ 本周共完成 {len(完成事项总计)} 项工作")print("主要工作内容:") 事项统计 = defaultdict(int)for 事项 in 完成事项总计: 事项统计[事项] += 1# 显示出现次数最多的5个事项for 事项, 次数 in sorted(事项统计.items(), key=lambda x: x[1], reverse=True)[:5]:print(f" · {事项} ({次数}次)")# 生成总结print("\n📝 本周总结:")if 心情统计: 主要心情 = max(心情统计.items(), key=lambda x: x[1])[0]if 主要心情 in ["开心", "愉悦", "满意"]:print(" 👍 本周整体心情积极,工作状态良好!")elif 主要心情 in ["一般", "平静"]:print(" 👌 本周工作状态平稳,继续保持。")else:print(" 🤔 本周心情有波动,注意调节工作状态。")if 运势统计: 主要运势 = max(运势统计.items(), key=lambda x: x[1])[0]if 主要运势 in ["大吉", "中吉"]:print(" 🍀 本周运势不错,工作进展顺利!")elif 主要运势 in ["小吉", "平"]:print(" 📈 本周运势平稳,稳扎稳打即可。")else:print(" ⚠️ 本周挑战较多,注意谨慎行事。")return {"总天数": 总天数,"心情统计": dict(心情统计),"运势统计": dict(运势统计),"完成事项": 完成事项总计 } def 导出所有记录(self, 文件名="办公室运势记录.json"):"""导出所有运势记录""" with open(文件名, 'w', encoding='utf-8') as f: json.dump(self.运势记录, f, ensure_ascii=False, indent=2)print(f"✅ 所有记录已导出到:{文件名}")return 文件名# 使用示例def 主程序():"""主程序:演示运势生成器的使用"""print("🏢 办公室运势生成器 v1.0")print("="*50)# 创建生成器实例 生成器 = 办公室运势生成器()# 示例:生成今日运势print("\n1. 生成今日运势") 今日运势 = 生成器.生成今日运势("张老师", "语文教师", "开心") 生成器.显示运势(今日运势)# 保存运势 生成器.保存运势(今日运势)# 示例:记录工作状态print("\n2. 记录今日工作状态") 今天日期 = datetime.datetime.now().strftime("%Y-%m-%d")# 模拟完成的工作事项 完成事项 = ["批改学生作业","准备家长会材料","参加教研活动","整理教学资料" ] 生成器.记录心情和工作( 日期=f"{今天日期} Monday", 心情="满意", 工作状态="高效", 完成事项=完成事项 )# 示例:生成多日运势(模拟一周数据)print("\n3. 生成一周运势记录(模拟)") 模拟日期 = ["2023-10-09 Monday","2023-10-10 Tuesday", "2023-10-11 Wednesday","2023-10-12 Thursday","2023-10-13 Friday" ] 模拟心情 = ["开心", "一般", "平静", "满意", "疲惫"] 模拟工作状态 = ["高效", "正常", "一般", "良好", "一般"]for i, 日期 in enumerate(模拟日期): 运势 = 生成器.生成今日运势("张老师", "语文教师", 模拟心情[i])# 模拟每日完成事项 模拟完成事项 = []for j in range(random.randint(3, 6)): 事项 = random.choice(["备课", "上课", "批改作业", "学生辅导","会议", "材料整理", "教学研究", "培训学习" ]) 模拟完成事项.append(事项) 生成器.记录心情和工作( 日期=日期, 心情=模拟心情[i], 工作状态=模拟工作状态[i], 完成事项=模拟完成事项 )# 生成周报print("\n4. 生成周报总结") 周报数据 = 生成器.生成周报("2023-10-09", "2023-10-13")# 导出所有记录print("\n5. 导出所有记录") 生成器.导出所有记录()# 互动功能print("\n6. 自定义生成运势") 自定义姓名 = input("请输入你的姓名:") or "张老师" 自定义职位 = input("请输入你的职位:") or "教师" 自定义心情 = input("请输入今天的心情:") or "一般" 自定义运势 = 生成器.生成今日运势(自定义姓名, 自定义职位, 自定义心情) 生成器.显示运势(自定义运势)# 保存自定义运势 保存选择 = input("\n是否保存这份运势?(y/n):")if 保存选择.lower() == 'y': 生成器.保存运势(自定义运势, f"{自定义姓名}_今日运势.json")# 运行主程序if __name__ == "__main__": 主程序()