本期我们要学习 Python 中一个超级重要的概念——条件判断。这就像是给程序装上了"大脑",让它能够根据不同情况做出不同的决定。和 Shell 语言中的条件判断基本一致,可参考Shell 脚本从零开始:掌握自动化的第一步(二)
假设你每天早上出门前都会看天气:如果下雨就带伞,如果天晴就戴墨镜。这就是条件判断!今天我们就来让 Python 做这样的判断。
if 语句是条件判断的基础,格式非常简单:
age = 18if age >= 18: print("恭喜你,已经成年了!") print("可以考驾照啦~")注意要点:
:当我们需要"如果...否则..."这样的逻辑时,就用 if-else:
score = 85if score >= 60: print("太棒了!考试及格了!🎉")else: print("加油!下次一定能过!💪")现实生活中,很多时候需要判断多个条件。比如成绩分级:
score = 88if score >= 90: print("成绩等级:优秀")elif score >= 80: print("成绩等级:良好")elif score >= 60: print("成绩等级:及格")else: print("成绩等级:不及格")小贴士: elif 是 else if 的缩写,可以写很多个 elif,但只会执行第一个满足条件的分支。
比较运算符用来比较两个值的关系,返回 True 或 False:
== | 5 == 5 | |
!= | 5 != 3 | |
> | 5 > 3 | |
< | 5 < 3 | |
>= | 5 >= 5 | |
<= | 3 <= 5 |
# 实战演示temperature = 28if temperature > 30: print("天气太热了,开空调!")elif temperature < 10: print("天气太冷了,穿外套!")else: print("温度刚刚好,舒适!")逻辑运算符用来组合多个条件:
and(与):所有条件都为 True 时才为 True
age = 20has_license = Trueif age >= 18 and has_license: print("可以开车上路了!")or(或):只要有一个条件为 True 就为 True
is_weekend = Trueis_holiday = Falseif is_weekend or is_holiday: print("可以睡懒觉啦!")not(非):取反,True 变 False,False 变 True
is_raining = Falseif not is_raining: print("天气不错,出去走走吧!")让我们做一个有趣的星座配对小程序:
# 星座配对测试print("=" * 40)print("欢迎来到星座配对测试")print("=" * 40)my_sign = input("请输入你的星座:")crush_sign = input("请输入TA的星座:")print("\n正在为你们测算缘分...\n")if my_sign == crush_sign: print("配对指数:100%") print("你们是同一星座!心有灵犀,默契满分!")elif (my_sign == "白羊座" and crush_sign == "狮子座") or \ (my_sign == "狮子座" and crush_sign == "白羊座"): print("配对指数:95%") print("火象星座的完美组合!充满激情与活力!")elif (my_sign == "金牛座" and crush_sign == "处女座") or \ (my_sign == "处女座" and crush_sign == "金牛座"): print("配对指数:90%") print("土象星座的稳定组合!踏实可靠的爱情!")elif (my_sign == "双子座" and crush_sign == "天秤座") or \ (my_sign == "天秤座" and crush_sign == "双子座"): print("配对指数:88%") print("风象星座的浪漫组合!沟通无障碍!")else: print("配对指数:75%") print("虽然星座不同,但真爱无关星座!")print("\n温馨提示:星座只是参考,真爱靠经营哦~")创建一个能简单对话的聊天机器人:
# 简易聊天机器人print("你好!我是 Python 小助手,很高兴认识你!")print("(输入'拜拜'可以结束对话)\n")user_input = input("你:")if user_input == "你好" or user_input == "hi" or user_input == "hello": print("机器人:你好呀!今天过得怎么样?")elif user_input == "你叫什么名字": print("机器人:我叫 Python 小助手,是一个正在学习中的 AI~")elif user_input == "今天天气怎么样": print("机器人:我看不到外面呢,要不你告诉我?")elif "吃" in user_input: print("机器人:听起来很美味!可惜我是机器人,不能吃东西")elif "学习" in user_input or "编程" in user_input: print("机器人:学习编程是件很酷的事!加油!")elif user_input == "拜拜" or user_input == "再见": print("机器人:再见!期待下次和你聊天~")else: print("机器人:这个问题有点难,我还在学习中...")布尔值(Boolean)只有两个值:True(真)和False(假)。它们是条件判断的核心。
is_student = Truehas_membership = Falseif is_student: print("学生享受8折优惠!")if not has_membership: print("办理会员可享更多优惠哦~")在 Python中,很多值都可以隐式转换为布尔值:
为False的情况:
""[]其他情况都为 True
# 妙用:检查用户是否输入了内容username = input("请输入用户名:")if username: # 如果 username 不是空字符串 print(f"欢迎你,{username}!")else: print("用户名不能为空哦~")# 妙用:检查列表是否有内容shopping_cart = []if shopping_cart: print("购物车有商品")else: print("购物车是空的,快去挑选商品吧!")# 技巧 1:用布尔变量做开关is_vip = Truediscount = 0.8 if is_vip else 1.0print(f"您的折扣是:{discount}")# 技巧 2:多条件组合age = 25is_student = Falseis_military = True# 学生或军人可以享受优惠if is_student or is_military: print("您可以享受特殊优惠!")# 技巧 3:条件表达式(三元运算符)score = 85result = "及格" if score >= 60 else "不及格"print(result)让我们做一个综合练习,实现一个简单的登录系统:
# 简易登录系统print("=" * 40)print("欢迎来到Python学习平台")print("=" * 40)correct_username = "python_lover"correct_password = "12345"username = input("请输入用户名:")password = input("请输入密码:")if not username or not password: print("❌ 用户名和密码不能为空!")elif username == correct_username and password == correct_password: print("✅ 登录成功!欢迎回来!") is_vip = True if is_vip: print("VIP用户,尊享全部课程!") else: print("可以开始学习免费课程啦~")elif username == correct_username: print("❌ 密码错误!请重试。")elif password == correct_password: print("❌ 用户名错误!请重试。")else: print("❌ 用户名和密码都不正确!")今天我们学习了条件判断的核心知识:
✅ if/elif/else语句:让程序能够做出选择✅ 比较运算符:==、!=、>、<、>=、<=✅ 逻辑运算符:and、or、not✅ 布尔值:True 和 False 的妙用✅ 实战案例:星座配对、聊天机器人、登录系统
掌握了条件判断,程序就有了"思考"的能力!下一篇我们将学习循环结构,让程序能够重复执行任务,敬请期待!
练习作业:
编写程序,输入一个整数,判断它是奇数还是偶数。
提示: 使用 % 运算符(取余)
输入一个0-100的分数,输出对应的等级:
输入当前温度,给出穿衣建议:
输入一个年份,判断是否为闰年。
闰年规则:
例如:2024是闰年,2100不是闰年,2000是闰年
输入三条边的长度,判断能否构成三角形,如果能,进一步判断是什么类型的三角形。
规则:
输入两个数字和一个运算符(+、-、*、/),输出计算结果。注意:除法时要判断除数是否为0。
编写一个石头剪刀布游戏:
提示: 使用 import random 和 random.choice() 函数
根据用电量计算电费(阶梯电价):
输入用电量,计算并输出总电费。
输入一个18位身份证号码,进行基础验证:
输入一个密码,检测密码强度:
提示: 使用 isdigit()、isalpha() 等字符串方法
完成后欢迎在评论区分享你的代码!💬
本系列往期回顾:
