欢迎回到《10天学会Python》系列!昨天我们学习了算术运算符,掌握了Python的“数学工具包”。今天,我们将进入编程中最有趣的部分——让程序“思考”和“做决定”!通过学习比较运算符与条件判断,你将教会计算机如何根据条件做出选择,就像教它区分“对与错”、“好与坏”一样。
核心概念:程序的“判断力”
编程不仅仅是计算数字,更重要的是根据不同的情况做出不同的反应。比如:
- 如果用户年龄≥18岁,显示“欢迎进入”
- 如果考试成绩≥60分,显示“及格”
- 如果用户名正确且密码正确,显示“登录成功”
这些“如果...就...”的逻辑,就是通过比较运算符和条件语句实现的。
比较运算符:判断对错的“标尺”
比较运算符用于比较两个值的大小或相等性,结果始终是 True(真)或 False(假)。这就像判断题,答案只有“对”或“错”。
Python提供了6种比较运算符:
表格复制
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
> |
大于 | 5 > 3 |
True |
< |
小于 | 5 < 3 |
False |
== |
等于 | 5 == 5 |
True |
!= |
不等于 | 5 != 3 |
True |
>= |
大于等于 | 5 >= 5 |
True |
<= |
小于等于 | 5 <= 3 |
False |
重要提醒:
- 一个等号
=是赋值:age = 18(把18存到age变量中) - 两个等号
==是比较:age == 18(判断age是否等于18) - 布尔值
True和False首字母必须大写
详细代码示例:生活中的“判断题”
示例1:年龄验证(基本比较)
# 判断是否成年
age = 20
is_adult = age >= 18
print(f"年龄:{age}岁")
print(f"是否成年:{is_adult}")
# 更友好的输出
if is_adult:
print("欢迎进入!")
else:
print("抱歉,未满18岁不能进入。")
示例2:成绩等级判断(多重比较)
# 判断成绩等级
score = 85
is_pass = score >= 60 # 是否及格
is_excellent = score >= 90 # 是否优秀
is_fail = score < 60 # 是否不及格
print(f"成绩:{score}分")
print(f"是否及格:{is_pass}")
print(f"是否优秀:{is_excellent}")
print(f"是否不及格:{is_fail}")
示例3:登录验证(字符串比较)
# 简单的用户名检查
username = "admin"
input_username = "user123"
is_correct_username = username == input_username
print(f"预设用户名:{username}")
print(f"输入的用户名:{input_username}")
print(f"用户名是否正确:{is_correct_username}")
示例4:数值范围判断(组合比较)
# 判断温度是否在舒适范围内
temperature = 22
comfort_min = 18
comfort_max = 26
is_comfortable = temperature >= comfort_min and temperature <= comfort_max
print(f"当前温度:{temperature}℃")
print(f"舒适范围:{comfort_min}℃ ~ {comfort_max}℃")
print(f"是否舒适:{is_comfortable}")
逻辑运算符:组合多个条件的“粘合剂”
有时候,我们需要同时满足多个条件,或者满足其中一个条件。这时就需要逻辑运算符来组合多个比较结果。
Python有三种逻辑运算符:
表格复制
| 运算符 | 含义 | 真值表(假设A和B是两个条件) |
|---|---|---|
and |
与(且) | A和B都为True时,结果为True |
or |
或 | A或B至少一个为True时,结果为True |
not |
非 | 取反,True变False,False变True |
真值表详解
为了更好地理解逻辑运算符,我们来看一个完整的真值表:
表格复制
| A | B | A and B |
A or B |
not A |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
示例5:复杂条件判断
# 电影票购买条件:年龄≥13岁 且 有票 或 有会员卡
age = 15
has_ticket = True
has_member_card = False
# 条件1:年龄≥13岁
condition1 = age >= 13
# 条件2:有票
condition2 = has_ticket
# 条件3:有会员卡
condition3 = has_member_card
# 组合条件:(年龄≥13岁 且 有票) 或 有会员卡
can_enter = (condition1 and condition2) or condition3
print(f"年龄:{age}岁,符合年龄要求:{condition1}")
print(f"有票:{has_ticket}")
print(f"有会员卡:{has_member_card}")
print(f"可以进入电影院:{can_enter}")
示例6:登录系统(用户名和密码双重验证)
# 预设的登录信息
correct_username = "python_learner"
correct_password = "123456"
# 用户输入
input_username = "python_learner"
input_password = "123456"
# 检查用户名和密码
username_ok = input_username == correct_username
password_ok = input_password == correct_password
# 使用and运算符:必须两者都正确
login_success = username_ok and password_ok
print(f"用户名检查:{username_ok}")
print(f"密码检查:{password_ok}")
print(f"登录成功:{login_success}")
if login_success:
print("🎉 欢迎回来,学习愉快!")
else:
print("❌ 用户名或密码错误,请重试。")
if条件语句:让程序“做选择”
有了比较和逻辑运算符,我们可以判断条件是否成立。但要真正让程序根据条件执行不同的代码,就需要 if条件语句。
if语句的基本结构
if 条件:
# 条件为True时执行的代码
print("条件成立!")
else:
# 条件为False时执行的代码
print("条件不成立。")
示例7:简单的if-else语句
# 判断数字正负
number = -5
if number > 0:
print(f"{number}是正数")
elif number < 0:
print(f"{number}是负数")
else:
print("这个数是0")
示例8:成绩评级系统(if-elif-else链)
# 根据分数给出等级
score = 85
if score >= 90:
grade = "A"
comment = "优秀!继续保持!"
elif score >= 80:
grade = "B"
comment = "良好,有很大进步空间!"
elif score >= 70:
grade = "C"
comment = "中等,再加把劲!"
elif score >= 60:
grade = "D"
comment = "及格,需要更多努力!"
else:
grade = "F"
comment = "不及格,建议重新学习!"
print(f"分数:{score}")
print(f"等级:{grade}")
print(f"评语:{comment}")
示例9:嵌套if语句
# 游戏角色购买系统:需要足够的金币和达到相应等级
player_level = 25
player_coins = 1500
character_price = 1200
required_level = 20
if player_coins >= character_price:
if player_level >= required_level:
print("✅ 购买成功!角色已解锁。")
player_coins -= character_price
print(f"剩余金币:{player_coins}")
else:
print(f"❌ 等级不足,需要{required_level}级,当前{player_level}级")
else:
print(f"❌ 金币不足,需要{character_price}金币,当前{player_coins}金币")
实践应用:简易智能问答系统
现在,让我们综合运用今天学到的知识,创建一个有趣的简易智能问答系统。这个系统会根据用户的回答给出不同的反馈,模拟简单的对话。
项目需求
创建一个程序,实现以下功能:
- 询问用户年龄,判断是否为成年人
- 询问用户是否喜欢编程
- 根据回答给出个性化的建议
完整代码实现
# 简易智能问答系统
print("🤖 欢迎来到智能问答系统!")
print("我将问你几个问题,然后给你一些建议。")
print("-" * 40)
# 问题1:年龄
age_input = input("首先,请问你的年龄是多少? ")
age = int(age_input) # 将输入转换为整数
# 问题2:是否喜欢编程
like_programming_input = input("你喜欢编程吗?(请输入 是/否) ")
# 处理第二个问题的回答
like_programming = False
if like_programming_input == "是" or like_programming_input == "yes" or like_programming_input == "y":
like_programming = True
print("\n" + "=" * 40)
print("分析结果:")
print("=" * 40)
# 根据年龄给出建议
if age < 13:
print("👶 你还在上小学吧?学习编程可以从简单的游戏开始!")
elif age < 18:
print("🎒 中学生阶段是学习编程的黄金时期!")
print(" 推荐学习:Python基础、简单的网页制作")
elif age < 25:
print("🎓 大学生或刚工作的年纪,编程是重要技能!")
print(" 推荐学习:数据分析、Web开发、人工智能基础")
elif age < 40:
print("💼 职场人士学习编程可以提升工作效率!")
print(" 推荐学习:办公自动化、数据分析、爬虫技术")
else:
print("🌟 任何时候开始学习都不晚!编程能锻炼思维,预防衰老!")
print(" 推荐学习:简单的自动化脚本、数据处理")
print()
# 根据是否喜欢编程给出建议
if like_programming:
print("🎉 太好了!你喜欢编程!")
print(" 学习建议:坚持每天练习,参与开源项目,多写代码")
# 组合条件:年轻人且喜欢编程
if age < 25 and like_programming:
print(" 💡 你很有潜力成为优秀的程序员!")
else:
print("😊 没关系,编程不一定适合所有人。")
print(" 建议:可以先尝试简单的编程游戏或可视化编程工具")
print(" 比如:Scratch、Code.org上的教程")
print()
# 综合建议
print("📚 综合学习建议:")
if age >= 18 and like_programming:
print(" 1. 制定系统的学习计划(如这个10天系列)")
print(" 2. 每天至少练习1小时")
print(" 3. 尝试解决实际问题,而不是只看理论")
print(" 4. 加入编程社区,和其他学习者交流")
elif age < 18 and like_programming:
print(" 1. 平衡好学校课程和编程学习")
print(" 2. 参加编程竞赛或兴趣班")
print(" 3. 从有趣的项目开始,比如制作小游戏")
else:
print(" 1. 可以先从了解编程是什么开始")
print(" 2. 尝试简单的编程体验,不要有压力")
print(" 3. 培养逻辑思维,对学习其他科目也有帮助")
print("\n" + "=" * 40)
print("问答结束,感谢参与!")
print("记住:学习编程最重要的是兴趣和坚持!")
代码解析
- 输入处理:使用
input()获取用户输入,int()转换为数字类型 - 条件判断:多个
if-elif-else语句根据不同的年龄和兴趣给出建议 - 逻辑运算:
and运算符组合多个条件(如age < 25 and like_programming) - 字符串比较:判断用户是否喜欢编程时,接受多种回答("是"、"yes"、"y")
- 格式化输出:使用分隔线
"=" * 40美化输出界面
扩展建议:
- 添加更多问题,如学习目标、可用时间等
- 将建议保存到文件,供用户后续查看
- 添加简单的对话记忆功能
- 根据用户的历史回答调整建议
练习题
练习1:基础判断题
编写Python代码,判断以下条件是否成立,并输出 True 或 False:
10 > 5 and 3 < 47 == 7 or 8 != 8not (5 >= 10)(20 % 3 == 2) and (15 // 4 == 3)"hello" == "Hello" or 100 <= 99
要求:先手动判断,再编写代码验证你的答案。
练习2:生活场景应用
- 交通信号灯模拟:编写程序,根据用户输入的颜色(红/黄/绿),输出相应的行动指令(停/等/行)。
- 体质指数(BMI)判断:根据用户输入的身高(米)和体重(公斤),计算BMI值并判断体型:
- BMI < 18.5:偏瘦
- 18.5 ≤ BMI < 24:正常
- 24 ≤ BMI < 28:超重
- BMI ≥ 28:肥胖
- 闰年判断:输入一个年份,判断是否为闰年。闰年规则:
- 能被4整除但不能被100整除,或者
- 能被400整除
练习3:代码找错
找出下面代码中的错误并修复:
# 错误代码1
age = input("请输入年龄:")
if age > 18:
print("成年人")
else:
print("未成年人")
# 错误代码2
score = 85
if score >= 60 and score < 70:
print("及格")
elif score >= 70 and score < 85
print("良好")
else:
print("优秀")
# 错误代码3
username = "admin"
password = "123456"
if username = "admin" and password == "123456":
print("登录成功")
练习4:综合挑战
创建一个简易计算器,要求:
- 支持加、减、乘、除四种运算
- 用户输入两个数字和运算符
- 程序根据运算符执行相应计算
- 增加错误处理:
- 除数为0时提示错误
- 无效运算符时提示错误
- 输入非数字时提示错误
练习5:创意编程
设计一个个性化学习路线推荐系统:
- 询问用户的学习目标(Web开发/数据分析/人工智能/其他)
- 询问用户的每日学习时间(<1小时/1-2小时/>2小时)
- 询问用户的编程基础(零基础/有一点基础/有经验)
- 根据回答推荐具体的学习路径、资源和时间安排
总结
今天,我们迈出了编程思维的重要一步——让程序具备“判断力”!通过今天的学习,你掌握了:
1. 6种比较运算符:>、<、==、!=、>=、<=
- 用于比较两个值的大小或相等性
- 结果始终是
True或False
2. 3种逻辑运算符:and、or、not
and:两个条件都成立时结果为真or:至少一个条件成立时结果为真not:取反操作
3. if条件语句:程序的分支控制
if:条件成立时执行elif:上一个条件不成立时检查新条件else:所有条件都不成立时执行
4. 实践应用:简易智能问答系统
- 综合运用比较、逻辑和条件语句
- 处理用户输入,给出个性化建议
- 创建交互式程序
5. 编程思维的提升
- 从“顺序执行”到“条件执行”的跨越
- 学会将复杂问题分解为多个判断条件
- 理解程序的“智能”来自于清晰的逻辑设计
关键要点回顾
- 比较 vs 赋值:
==是比较,=是赋值,这是初学者最容易混淆的地方 - 布尔值:
True和False首字母必须大写,它们是Python的关键字 - 缩进的重要性:if语句后的代码块必须缩进(通常4个空格),这是Python的语法要求
- 运算符优先级:比较运算符优先级高于逻辑运算符,但使用括号能让代码更清晰
- 用户体验:良好的程序不仅要逻辑正确,还要有友好的交互和错误处理
明日预告
明天,我们将学习循环语句,让程序能够“重复执行”任务。你将掌握:
for循环:遍历序列中的每个元素while循环:在条件满足时重复执行- 循环控制:
break和continue的使用
通过循环,你可以让计算机处理大量重复性工作,比如批量处理数据、自动生成内容等。这将是效率提升的关键一步!
学习建议:
- 多实践:条件判断的关键在于理解逻辑,多做练习题加深理解
- 画流程图:对于复杂的条件逻辑,先画流程图可以帮助理清思路
- 逐步调试:使用
print()输出中间结果,观察程序的实际执行过程 - 阅读优秀代码:查看开源项目中的条件判断写法,学习最佳实践
- 保持耐心:逻辑思维需要时间培养,遇到困难时先分解问题
记住:编程不仅是技术,更是解决问题的艺术。今天学到的判断逻辑,在生活中也同样有用——分析问题、考虑条件、做出决策。培养这种思维,你将受益终身!
现在,打开你的编辑器,开始练习吧!每完成一个练习题,你就离“编程思维”更近一步。加油!