哈喽各位同学~
在编程世界里,让程序 “自己做选择”,是从简单脚本走向智能逻辑的第一步。而实现这一切的核心,就是条件判断。
不管是判断成绩是否及格、账号是否登录、年龄是否满足要求,还是根据不同情况输出不同结果,都离不开 if、else、elif。它就像程序里的 “岔路口”,满足什么条件,就走哪条路。
"智能的本质不是计算,而是选择。学会做选择,你的程序就拥有了智慧。"
一、生活中的判断
🤔 每天都在做选择
想想看,生活中充满了判断:
这些"如果...就..."的判断,在编程中叫做条件语句。
💡 程序中的判断
计算机特别擅长做判断,因为它不会犹豫,也不会出错(只要你写对了代码)。
比如一个自动售货机:
如果 投入的钱 >= 商品价格: 出货 找零否则: 提示 "钱不够"
二、if 语句基础
📝 基本语法
if 条件:# 条件为真时执行的代码# 注意缩进!
关键要点:
✅ 第一个 if 程序
age = 12if age >= 10:print("你已经是大孩子了!")print("可以学Python了!")print("程序结束")
运行结果:
你已经是大孩子了!可以学Python了!程序结束
分析:
age = 12,所以 age >= 10 是真的
❌ 条件不满足的情况
age = 8if age >= 10:print("你已经是大孩子了!")print("程序结束")
运行结果:
程序结束
分析:
三、比较运算符
重要提醒:
x = 5# 赋值:把5存到x里x == 5# 比较:x是不是等于5?
🎯 实战:成绩评价系统
score = int(input("请输入成绩(0-100):"))if score == 100:print("满分!太棒了!🏆")if score >= 90:print("优秀!👍")if score >= 60:print("及格了!✅")if score < 60:print("不及格,要加油哦!💪")
测试一下:
四、else 语句
🤷 如果不满足呢?
有时候我们需要处理"不满足条件"的情况:
password = input("请输入密码:")if password == "123456":print("密码正确,欢迎进入!")else:print("密码错误,请重试!")
语法:
if 条件:# 条件为真时执行else:# 条件为假时执行
🎮 实战:猜数字游戏(简单版)
import random# 电脑随机想一个1-100的数字secret = random.randint(1, 100)print("我想了一个1-100之间的数字,你来猜!")guess = int(input("请输入你的猜测:"))if guess == secret:print(f"恭喜你,猜对了!答案就是{secret}!")else:print(f"猜错了!我想的是{secret}。")print("再试一次吧!")
五、elif 多分支判断
🔀 多个条件怎么办?
如果有很多条件需要判断,用一堆 if 不太合适:
# ❌ 不好的写法if score >= 90:print("A")if score >= 80and score < 90: # 太啰嗦print("B")if score >= 70and score < 80:print("C")
更好的写法:elif
score = int(input("请输入成绩:"))if score >= 90: grade = "A"elif score >= 80: grade = "B"elif score >= 70: grade = "C"elif score >= 60: grade = "D"else: grade = "F"print(f"你的等级是:{grade}")
elif 的特点:
六、逻辑运算符
🔗 组合多个条件
有时候需要同时满足多个条件:
and(与)——两个都要满足
age = 15has_id = Trueif age >= 12and has_id:print("可以购买儿童票")else:print("不能购买")
or(或)——满足一个就行
day = "周六"if day == "周六"or day == "周日":print("今天是周末,可以睡懒觉!")else:print("今天要上学")
not(非)——取反
is_raining = Falseifnot is_raining:print("没下雨,可以出去玩!")
🎯 实战:会员等级系统
# 根据消费金额和会员年限确定等级spend = float(input("请输入消费金额:"))years = int(input("请输入会员年限:"))if spend >= 10000and years >= 3: level = "钻石会员" discount = 0.7elif spend >= 5000or years >= 2: level = "黄金会员" discount = 0.8elif spend >= 1000: level = "白银会员" discount = 0.9else: level = "普通会员" discount = 1.0print(f"您的等级:{level}")print(f"享受折扣:{discount * 10}折")
七、嵌套 if 语句
🏠 if 里面还有 if
就像大盒子里有小盒子:
is_member = input("您是会员吗?(yes/no):") == "yes"if is_member: points = int(input("请输入积分:"))if points >= 1000:print("可以兑换精美礼品!")else:print(f"还差{1000 - points}分可以兑换礼品")else:print("注册会员即可享受积分兑换!")
注意事项:
🎮 实战:完整的猜数字游戏
import randomsecret = random.randint(1, 100)attempts = 0max_attempts = 7print("🎮 猜数字游戏")print(f"我想了一个1-100的数字,你有{max_attempts}次机会!")while attempts < max_attempts: guess = int(input(f"\n第{attempts + 1}次猜测:")) attempts += 1if guess == secret:print(f"🎉 恭喜你,猜对了!用了{attempts}次")# 根据次数评价if attempts <= 3:print("🏆 太厉害了!天才!")elif attempts <= 5:print("👍 不错哦!")else:print("✅ 刚好猜中!")breakelif guess < secret:print("📈 太小了,往大猜!")else:print("📉 太大了,往小猜!")print(f"还剩{max_attempts - attempts}次机会")else:print(f"\n😢 机会用完了!答案是{secret}")
八、条件表达式(简写形式)
✨ 一行写完 if-else
对于简单的判断,可以写得更加简洁:
# 普通写法age = 20if age >= 18: status = "成年人"else: status = "未成年人"# 简写形式status = "成年人"if age >= 18else"未成年人"
语法:
结果A if 条件 else 结果B
更多例子:
# 求绝对值num = -5abs_num = num if num >= 0else -num# 判断奇偶n = 7result = "偶数"if n % 2 == 0else"奇数"# 成绩评价score = 85level = "优秀"if score >= 90else"良好"if score >= 80else"及格"
九、常见错误与调试
❌ 错误1:忘记冒号
if age > 10# ❌ 少了冒号print("长大了")# SyntaxError: expected ':'
修正:
if age > 10: # ✅ 加上冒号print("长大了")
❌ 错误2:缩进不一致
if score >= 60:print("及格")print("恭喜") # ❌ 多了一个空格
修正:
if score >= 60:print("及格")print("恭喜") # ✅ 对齐
❌ 错误3:混淆 = 和 ==
if x = 5: # ❌ 这是赋值,不是比较print("x是5")# SyntaxError: invalid syntax
修正:
if x == 5: # ✅ 这才是比较print("x是5")
❌ 错误4:elif 写成 elseif
if a > 0:print("正数")elseif a < 0: # ❌ Python里没有elseifprint("负数")
修正:
if a > 0:print("正数")elif a < 0: # ✅ 正确写法print("负数")
十、综合项目:智能问答机器人
🤖 项目目标
制作一个能回答问题的聊天机器人!
📝 完整代码
print("=" * 40)print("🤖 我是智能小助手,很高兴为你服务!")print("=" * 40)name = input("\n你叫什么名字?")print(f"你好,{name}!有什么可以帮你的?")whileTrue:print("\n你可以问我:")print("1. 今天天气怎么样?")print("2. 推荐一本书")print("3. 讲个笑话")print("4. 退出") choice = input("\n请输入选项(1-4):")if choice == "1": city = input("你在哪个城市?")if city in ["北京", "上海", "广州", "深圳"]:print(f"{city}今天晴天,适合外出!☀️")elif city in ["杭州", "成都", "西安"]:print(f"{city}今天多云,温度适宜。⛅")else:print(f"抱歉,我还不知道{city}的天气。🤔")elif choice == "2": age = int(input("你今年几岁?"))if age < 10:print("推荐《小王子》,一本温暖的童话书。📚")elif age < 15:print("推荐《哈利波特》,魔法世界的冒险!🧙♂️")else:print("推荐《三体》,宏大的科幻史诗!🚀")elif choice == "3":import random jokes = ["为什么程序员总是分不清圣诞节和万圣节?因为 Oct 31 == Dec 25!","程序员最讨厌的四件事:1. 写注释 2. 写文档 3. 别人不写注释 4. 别人不写文档","一个程序员走进酒吧,举起双手说:'我要一杯啤酒!'酒保说:'你是要一瓶还是一杯?'程序员说:'是的。'" ]print(random.choice(jokes))elif choice == "4":print(f"再见,{name}!期待下次见面!👋")breakelse:print("我不明白你的选择,请重新输入。")
十一、条件判断知识点总结
| | |
|---|
| if | | if x > 0: |
| if-else | | if...else... |
| if-elif-else | | if...elif...else... |
| 比较运算符 | | age >= 18 |
| 逻辑运算符 | | a > 0 and b > 0 |
| 嵌套 if | | |
| 条件表达式 | | a if x > 0 else b |
思考题
- 什么时候用 if-elif-else,什么时候用多个独立的 if?
- 如果条件很多(比如10个以上),怎么写代码更清晰?
🚀 预告
下一篇我们将学习 《循环结构——让程序重复工作》,你将学会:
准备好让你的程序不知疲倦地工作了吗?我们下次见!
记住:条件判断是程序的"大脑",让它能够思考、决策。掌握了这一点,你就离真正的程序员更近了一步!🧠✨