三国Python演义·第5回
发矫诏诸镇应曹公
运算符

🏮 赵老师说 🏮
同学们好!欢迎回到三国Python演义!
上一回,我们见证了董卓废帝立新,学了字符串操作的技能!
这一回,剧情更加热血!曹操逃出洛阳后,决心号召天下诸侯讨伐董卓!他发矫诏、招兵马,天下十八路英雄齐聚——这就是著名的**"十八路诸侯讨董卓"**!
你知道吗?在Python里,运算符是最基础的技能。我们可以用它来计算兵马数量、比较武将战力、判断是否出兵……
今天,我们要学习运算符——这是Python最常用的技能之一!
📖 第一幕:风云突变

小书童骑着一匹快马,气喘吁吁地跑来
"大事不好了!曹操逃回陈留,正在招兵买马,要讨伐董卓!"
⚡ 矫诏讨董 ⚡
话说曹操刺杀董卓失败后,星夜逃离洛阳。
一路上,曹操改名换姓,混过层层关卡,终于回到自己的根据地——陈留。
回到陈留后,曹操做了一件惊天动地的大事:
发布矫诏!号召天下诸侯讨伐董卓!
什么是"矫诏"?
曹操在矫诏中写道:
"今董卓弄权,天子受辱,四海之内,莫非汉臣!凡忠义之士,皆可起兵讨贼!"
这份矫诏一发出,天下震动!

🏰 十八路诸侯 🏰
矫诏发出后,天下英雄纷纷响应!
短短时间,就有十八路诸侯汇聚而来:
十八路诸侯联军,总兵力超过20万!
⚔️ 推举盟主 ⚔️
诸侯齐聚后,第一个问题就是:谁当盟主?
大家公推袁绍为盟主!
为什么是袁绍?
- 袁绍出身"四世三公"——家族四代人都当过三公(最高级别的官员)
就这样,袁绍成为了讨董联军的盟主,统帅十八路诸侯!
🗡️ 汜水关前 🗡️
联军进兵至汜水关,与董卓军对峙。
董卓派出的守将是——华雄!
华雄武艺高强,连续斩杀联军数将:
联军连折数将,士气低落,无人敢再出战!
🔥 温酒斩华雄 🔥
就在此时,关羽站了出来!
"小将愿往斩华雄!"
袁绍问:"你是何人?"
关羽回答:"我是刘备的部下,马弓手关羽!"
袁术大怒:"一个小小的马弓手,也敢口出狂言!"
但曹操站了出来,为关羽说情:
"此人仪表不凡,又敢出战,何不让他一试?先给他温一杯酒壮行!"
于是,曹操斟了一杯热酒递给关羽。
关羽却说:
"酒且放下,我去去就回!"
说完,关羽提刀上马,直奔汜水关……
不多时,关羽提华雄首级归来,那杯酒竟然还是温热的!
这就是著名的**"温酒斩华雄"**!
📚 原文拓展
《三国演义》原文第五回片段:
"关公提刀出马,众诸侯听得关外鼓声大振,喊声大举,如天摧地塌,岳撼山崩……"
"关公左手绰髯,于灯下看书。众皆失惊……"
"关公曰:'酒且斟上,某去便来。'出帐提刀,飞身上马。众诸侯听得关外鼓声大振,喊声大举……"
——罗贯中《三国演义》第五回
🐍 第二幕:Python锦囊

小蛇PyPy从草丛里钻出来,神秘兮兮地晃着脑袋
"嘘!十八路诸侯讨董需要你来计算!先学会Python的运算符吧!"
🔢 什么是运算符?
运算符是用来进行计算和比较的符号!
在Python中,运算符分为三大类:
- 算术运算符
- 比较运算符
- 逻辑运算符
🧮 一、算术运算符
算术运算符就是用来做数学计算的符号!
| | | |
|---|
+ | | 3 + 5 | 8 |
- | | 10 - 4 | 6 |
* | | 3 * 5 | 15 |
/ | | 10 / 2 | 5.0 |
// | | 10 // 3 | 3 |
% | | 10 % 3 | 1 |
** | | 2 ** 3 | 8 |
用三国故事来理解:
python
# 曹操的陈留兵营曹操兵力 =3000孙坚兵力 =15000# 算一算联军兵力联军总数 = 曹操兵力 + 孙坚兵力print(联军总数)# 输出:18000
python
# 计算十八路诸侯的平均兵力总兵力 =200000诸侯数 =18平均兵力 = 总兵力 // 诸侯数print(平均兵力)# 输出:11111
python
# 计算华雄还能战斗几回合(取余)总回合 =100已战斗 =63剩余回合 = 总回合 % 已战斗print(剩余回合)# 输出:37
python
# 计算兵力翻倍(幂运算)曹操兵力 =3000三年后兵力 = 曹操兵力 **2print(三年后兵力)# 输出:9000000(平方)
⚖️ 二、比较运算符
比较运算符用来比较两个值的大小,返回True或False!
| | | |
|---|
== | | 5 == 5 | True |
!= | | 3 != 5 | True |
> | | 10 > 5 | True |
< | | 3 < 5 | True |
>= | | 5 >= 5 | True |
<= | | 3 <= 5 | True |
用三国故事来理解:
python
# 比较诸侯兵力袁绍兵力 =30000曹操兵力 =3000# 袁绍兵力是否大于曹操?袁绍更强 = 袁绍兵力 > 曹操兵力print(袁绍更强)# 输出:True# 曹操兵力是否等于3000?曹操够格 = 曹操兵力 ==3000print(曹操够格)# 输出:True
python
# 判断关羽能否出战华雄关羽战力 =100华雄战力 =90# 关羽比华雄强吗?关羽能胜 = 关羽战力 > 华雄战力print("关羽能战胜华雄吗?", 关功能胜)# 输出:True
python
# 判断是否为盟主当前盟主 ="袁绍"正统盟主 ="袁绍"是否为盟主 = 当前盟主 == 正统盟主print("袁绍是盟主吗?", 是否为盟主)# 输出:True
🔗 三、逻辑运算符
逻辑运算符用来组合多个条件,返回True或False!
| | | |
|---|
and | | | True and False |
or | | | True or False |
not | | | not True |
用三国故事来理解:
python
# 判断是否出兵的条件兵力充足 =True粮草充足 =True士气高涨 =True# 所有条件都满足才出兵可以出兵 = 兵力充足 and 粮草充足 and 士气高涨print("可以出兵吗?", 可以出兵)# 输出:True
python
# 判断是否需要援军华雄已死 =True吕布来了 =False# 任一条件成立就需要加强防守需要援军 = 华雄已死 or 吕布来了print("需要援军吗?", 需要援军)# 输出:True
python
# 判断是否停战董卓已死 =False# 敌人没死,不能停战可以停战 =not 董卓已死print("可以停战吗?", 可以停战)# 输出:False
📊 运算符优先级
当一个表达式中有多个运算符时,Python会按照优先级顺序计算:
| | |
|---|
| ** | |
| *///% | |
| +- | |
| ><>=<===!= | |
| not | |
| and | |
| or | |
python
# 先算乘除,后算加减结果 =10+5*2print(结果)# 输出:20(不是30!)# 用括号改变优先级结果 =(10+5)*2print(结果)# 输出:30

⚠️ 重要提醒
| | |
|---|
=== | == | |
3 = 5 | 3 == 5 | |
and or not | andornot | |
1 and 0 | True and False | 虽然Python会把0当作False,但最好写明确 |
💡 小技巧:赋值用 =,比较用 ==
⚔️ 第三幕:沉浸式闯关

"⚔️ 欢迎来到讨董联盟关!你现在是联军军师,用代码计算兵力、排兵布阵!"
🎮 任务一⭐:诸侯兵力计算器
难度: ⭐(入门)
故事背景:你是联军的军师,需要计算各路诸侯的兵力总和和平均值。
任务描述:
参考代码:
python
# 诸侯兵力计算器!曹操 =3000袁绍 =30000袁术 =20000孙坚 =15000韩馥 =20000孔伷 =15000# 计算总兵力总兵力 = 曹操 + 袁绍 + 袁术 + 孙坚 + 韩馥 + 孔伷print("六路诸侯总兵力:", 总兵力)# 计算平均兵力平均兵力 = 总兵力 //6print("平均每路兵力:", 平均兵力)
运行示例:
plaintext
六路诸侯总兵力: 103000平均每路兵力: 17166
🎮 任务二⭐⭐:战力对比器
难度: ⭐⭐(入门)
故事背景:联军派出关羽出战华雄,需要对比双方战力。你来用比较运算符判断胜负!
任务描述:
参考代码:
python
# 战力对比器!关羽战力 =100华雄战力 =90print("="*20)print("⚔️ 关羽 VS 华雄 战力对比 ⚔️")print("="*20)print(f"关羽战力:{关羽战力}")print(f"华雄战力:{华雄战力}")print("-"*20)# 比较战力关羽更强 = 关羽战力 > 华雄战力战力相等 = 关羽战力 == 华雄战力关羽更弱 = 关羽战力 < 华雄战力print(f"关羽更强?{关羽更强}")print(f"战力相等?{战力相等}")print(f"关羽更弱?{关羽更弱}")# 综合判断print("-"*20)if 关羽更强:print("🏆 关羽必胜!温酒斩华雄!")elif 战力相等:print("⚔️ 旗鼓相当!")else:print("😰 关羽危险!")
运行示例:
plaintext
====================⚔️ 关羽 VS 华雄 战力对比 ⚔️====================关羽战力:100华雄战力:90--------------------关羽更强?True战力相等?False关羽更弱?False--------------------🏆 关羽必胜!温酒斩华雄!
🎮 任务三⭐⭐⭐:出兵决策系统
难度: ⭐⭐⭐(进阶)
故事背景:作为联军军师,你需要综合判断是否应该出兵攻打董卓!
任务描述:
参考代码:
python
# 出兵决策系统!print("="*25)print("⚔️ 联军出兵决策系统 ⚔️")print("="*25)# 输入各条件粮草充足 =input("粮草是否充足(是/否):")=="是"兵力充足 =input("兵力是否充足(是/否):")=="是"士气高涨 =input("士气是否高涨(是/否):")=="是"华雄已死 =input("华雄是否已死(是/否):")=="是"print("-"*25)# 逻辑运算决策可以出兵 = 粮草充足 and 兵力充足 and 士气高涨需要谨慎 = 华雄已死 or(not 粮草充足)应该撤退 =not 兵力充足 andnot 粮草充足print("\n📊 决策分析:")print(f"粮草充足:{粮草充足}")print(f"兵力充足:{兵力充足}")print(f"士气高涨:{士气高涨}")print(f"华雄已死:{华雄已死}")print("\n"+"="*25)if 应该撤退:print("🚫 建议撤退!兵力粮草都不足!")elif 可以出兵:print("🚀 建议出兵!所有条件满足!")elif 需要谨慎:print("⚠️ 谨慎出兵!有些条件不满足!")else:print("⏸️ 等待时机!")print("="*25)
运行示例:
plaintext
=========================⚔️ 联军出兵决策系统 ⚔️=========================粮草是否充足(是/否):是兵力是否充足(是/否):是士气是否高涨(是/否):是华雄是否已死(是/否):是-------------------------📊 决策分析:粮草充足:True兵力充足:True士气高涨:True华雄已死:True=========================🚀 建议出兵!所有条件满足!=========================
🎮 选做任务⭐⭐⭐⭐:十八路诸侯综合系统
难度: ⭐⭐⭐⭐(挑战)
故事背景:你需要编写一个完整的诸侯管理系统,能查询诸侯信息、计算联军数据、判断战局形势!
任务描述:
- 用字典存储十八路诸侯信息(名称、兵力、战斗力、粮草)
参考代码:
python
# 十八路诸侯综合系统!print("="*35)print("⚔️ 十八路诸侯讨董联盟系统 ⚔️")print("="*35)# 诸侯信息字典诸侯们 ={"曹操":{"兵力":3000,"战力":85,"粮草":"充足"},"袁绍":{"兵力":30000,"战力":80,"粮草":"充足"},"袁术":{"兵力":20000,"战力":75,"粮草":"充足"},"孙坚":{"兵力":15000,"战力":95,"粮草":"充足"},"韩馥":{"兵力":20000,"战力":70,"粮草":"充足"},"孔伷":{"兵力":15000,"战力":65,"粮草":"一般"},}# 计算总兵力总兵力 =0最强战力 =0最强诸侯 =""for 诸侯名, 信息 in 诸侯们.items(): 总兵力 += 信息["兵力"]if 信息["战力"]> 最强战力: 最强战力 = 信息["战力"] 最强诸侯 = 诸侯名print(f"\n📊 联军数据:")print(f"参与诸侯:{len(诸侯们)}路")print(f"总兵力:{总兵力}")print(f"平均兵力:{总兵力 //len(诸侯们)}")print(f"\n🏆 最强诸侯:{最强诸侯}(战力:{最强战力})")# 战局分析董卓兵力 =500000联军够强 = 总兵力 >= 董卓兵力 *0.3# 联军达到董卓30%即可一战print(f"\n⚔️ 战局分析:")print(f"董卓军兵力:{董卓兵力}")print(f"联军/董卓比例:{总兵力 / 董卓兵力 *100:.1f}%")if 联军够强:print("✅ 联军实力足够,可以一战!")else:print("⚠️ 联军实力不足,需要谨慎!")
运行示例:
plaintext
===================================⚔️ 十八路诸侯讨董联盟系统 ⚔️===================================📊 联军数据:参与诸侯:6路总兵力:103000平均兵力:17166🏆 最强诸侯:孙坚(战力:95)⚔️ 战局分析:董卓军兵力:500000联军/董卓比例:20.6%⚠️ 联军实力不足,需要谨慎!
🏆 第四幕:通关奖励
📜 你的代码改变了战局
因为你的参与,讨董联军得以组织起来!
但这段历史,将被你的代码永远铭记!
📚 知识点回顾
恭喜你完成了第5回的闯关!让我们来回顾今天学到的知识:
| | |
|---|
+ | | 曹操 + 袁绍 |
- | | 董卓军 - 斩将 |
* | | 兵力 * 2 |
/ | | 总兵力 / 诸侯数 |
// | | 总兵力 // 18 |
% | | 100 % 3 |
** | | 2 ** 10 |
== | | 兵力 == 3000 |
!= | | 华雄 != 关羽 |
><>=<= | | 关羽 > 华雄 |
and | | 粮草 and 兵力 |
or | | 华雄 or 吕布 |
not | | not 停战 |
🎯 核心记忆口诀
算术运算符: 加减乘除,整除取余,幂运算**记心里
比较运算符: 等于==不等于!=,大小比较用><,还有>=<=要牢记
逻辑运算符: 与and或or非not,条件组合全靠它
🔮 下回预告
第6回预告:焚金阙董卓行凶
董卓见联军势大,竟然想出了一条毒计——火烧洛阳,迁都长安!他还逼迫汉献帝和百姓一起迁移,洛阳城一片火海……
下回知识点预告:input()输入——如何与用户互动?
📝 课后练习
基础题:写一段代码,计算十八路诸侯的总兵力(假设每路平均1万人)
进阶题:写一个程序,输入关羽和华雄的战力值,用比较运算符判断谁更强
挑战题:写一个"出征决策器",根据粮草、兵力、士气三个条件,用逻辑运算符判断是否可以出征
思考题:在古代,军队需要根据粮草和距离来计算行军时间。如果用Python来计算,你会怎么设计这个程序?
🎮 资源链接
- Python官网
- Python运算符文档:https://docs.python.org/zh-cn/3/library/operators.html
📢 赵老师提示:
完成所有闯关任务后,别忘了截图保存你的代码!
运算符虽然简单,却是Python编程的基础中的基础!
有任何问题,欢迎随时来问小书童和小蛇PyPy哦!
「三国Python演义」第5回·完