Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

条件语句

引言

在前面的章节中,我们学习了顺序语句——程序按从上到下的顺序执行。但现实生活中,很多决定需要根据条件来做不同的选择。

想象一下:

  • 如果下雨,就带伞;如果不下雨,就不带伞
  • 如果温度高于30度,就开空调;否则就开窗
  • 如果作业写完了,就可以玩游戏;否则就继续写作业

这些都需要判断一个条件,然后根据判断结果做不同的事情。在Python中,我们用条件语句来实现这种功能。

你知道吗? 🤔 在上一章,我们学习了CPU如何按顺序执行代码。但CPU不仅能按顺序执行,还能做逻辑判断

  • CPU可以比较两个数字的大小
  • CPU可以判断一个条件是True还是False
  • 根据判断结果,CPU可以决定执行哪一段代码

这就是条件语句的硬件基础!

这一章,我们将学习:

  • 什么是条件语句
  • if语句的基本用法
  • if-else语句(两种选择)
  • if-elif-else语句(多种选择)
  • 嵌套if语句(条件中的条件)
  • 复习数学比较大小的知识
  • 用条件语句解决数学应用题

回顾:布尔值和比较运算

在第5章,我们学习了布尔值(True和False)和比较运算符。它们是条件语句的基础。

数学小知识 📐 在数学课上,我们学过比较两个数的大小:

  • 大于:a > b (a比b大)
  • 小于:a < b (a比b小)
  • 等于:a = b (a和b相等)
  • 大于等于:a ≥ b (a大于或等于b)
  • 小于等于:a ≤ b (a小于或等于b)

Python中的比较运算符和数学中的符号很像,只是写法稍有不同!

比较运算符

让我们快速回顾一下:

# 等于 (数学中是 =,Python中是 ==)
print(5 == 5)   # True
print(5 == 3)   # False

# 不等于 (数学中是 ≠)
print(5 != 3)   # True
print(5 != 5)   # False

# 大于 (和数学一样)
print(10 > 5)   # True
print(5 > 10)   # False

# 小于 (和数学一样)
print(3 < 7)    # True
print(7 < 3)    # False

# 大于等于 (数学中是 ≥)
print(8 >= 8)   # True
print(8 >= 5)   # True

# 小于等于 (数学中是 ≤)
print(6 <= 10)  # True
print(6 <= 6)   # True

数学练习 📝 用Python比较以下数字的大小:

  1. 100 和 200 (答案: 100 < 200,所以100 < 200是True)
  2. 3.14 和 3.14159 (答案: 3.14 < 3.14159)
  3. -5 和 -10 (答案: -5 > -10,负数绝对值越大,数值越小)

注意 ⚠️

  • 在数学中,我们用“=“表示相等
  • 在Python中,“=“是赋值(把值给变量),”==“才是比较(判断是否相等)
  • 这个区别非常重要!

布尔运算符

我们也学过如何组合多个条件:

# and(两个条件都满足)
age = 15
print(age >= 10 and age <= 18)  # True(10到18岁之间)

# or(至少一个条件满足)
day = "周六"
print(day == "周六" or day == "周日")  # True(是周末)

# not(取反)
is_raining = False
print(not is_raining)  # True(不下雨)

数学中的“且“和“或“ 📐 在数学中,我们学过:

  • 且(∧): 两个条件都满足 (对应Python的and)
  • 或(∨): 至少一个条件满足 (对应Python的or)
  • 非(¬): 取反 (对应Python的not)

数学练习 📝

  1. 如果x > 5且x < 10,Python应该写成?

    x > 5 and x < 10
    
  2. 如果x ≤ 0或x ≥ 100,Python应该写成?

    x <= 0 or x >= 100
    

👨‍🏫 给家长的Tips

教学方法建议:

  • 确保孩子理解比较运算符和布尔值
  • 可以用生活中的例子练习:判断年龄、分数、温度等
  • 重点强调:“==“是等于(比较),”=“是赋值(赋值)
  • 可以在纸上画数轴,帮助孩子理解大于、小于的概念

知识点补充(针对家长):

  • CPU有专门的比较指令(如CMP指令),用于比较两个数的大小
  • CPU有逻辑运算指令(如AND、OR、NOT),用于组合条件
  • 这些指令的结果都是布尔值(True/False),在CPU中用1和0表示
  • 条件判断的底层原理:CPU根据比较结果(0或1)决定是否“跳转“到其他代码执行

如何给孩子讲解:

  • 不需要深入CPU指令集的细节
  • 重点让孩子理解:CPU可以比较数字,并根据结果做决定
  • 可以用“如果温度>30度,就开空调“的例子来类比CPU的逻辑判断

if语句:最简单的条件判断

if语句的基本语法

if 条件:
    # 条件为True时执行的代码
    代码块

语法要点

  • if后面跟着一个条件(布尔表达式)
  • 条件后面必须有冒号:(英文冒号)
  • 要执行的代码必须缩进(通常用4个空格或1个Tab)
  • 只有条件为True时,代码块才会执行

示例1:分数奖励

假设小明的Python成绩大于98分,就能获得一个霸王龙玩具:

# 设置分数
score = 99

# 判断分数是否大于98
if score > 98:
    print("恭喜你!")
    print("你获得了一个霸王龙玩具!")

print("程序结束")

输出结果:

恭喜你!
你获得了一个霸王龙玩具!
程序结束

如果分数不满足条件:

# 设置分数
score = 95

# 判断分数是否大于98
if score > 98:
    print("恭喜你!")
    print("你获得了一个霸王龙玩具!")

print("程序结束")

输出结果:

程序结束

可以看到,当条件不满足时,if语句内的代码不会执行,程序直接跳过。

示例2:判断奇数

# 输入一个数字
num = int(input("请输入一个整数:"))

# 判断是否为奇数(除以2余1)
if num % 2 == 1:
    print(f"{num}是奇数")

print("判断结束")

给家长的小贴士

  • 解释什么是“奇数“:不能被2整除的数(除以2余1)
  • 解释%运算符:求余数
  • 让孩子尝试输入不同的数字,观察结果

练习1

题目:小明考试如果及格(分数≥60),爸爸奖励他一辆汽车(输出“gift: car“),如果不及格则没有奖励(输出“gift: none“)。

👉 点击查看答案
# 输入分数
score = int(input("请输入小明的考试分数:"))

# 判断是否及格
if score >= 60:
    print("gift: car")
else:
    print("gift: none")

注意:这个练习需要用到if-else语句,下面马上就会学到!

if-else语句:两种选择

当我们需要在两种情况中做选择时,使用if-else语句。

if-else的基本语法

if 条件:
    # 条件为True时执行
    代码块1
else:
    # 条件为False时执行
    代码块2

示例

  • 如果小明Python考试成绩大于98分,老师就奖励他一个小汽车
  • 否则老师就罚他抄代码100遍
# 输入分数
score = int(input("请输入小明的Python成绩:"))

# 判断分数
if score > 98:
    print("🎉 恭喜你!奖励一个小汽车!")
else:
    print("😢 很遗憾,请抄代码100遍")

print("判断结束")

运行示例1(分数大于98):

请输入小明的Python成绩:100
🎉 恭喜你!奖励一个小汽车!
判断结束

运行示例2(分数不大于98):

请输入小明的Python成绩:95
😢 很遗憾,请抄代码100遍
判断结束

示例:用户登录验证

设定一个用户名和密码,用户输入用户名和密码都正确,打印“welcome“,否则输出“error“。

# 设定正确的用户名和密码
correct_username = "admin"
correct_password = "123456"

# 用户输入
username = input("请输入用户名:")
password = input("请输入密码:")

# 判断用户名和密码是否都正确
if username == correct_username and password == correct_password:
    print("welcome")
else:
    print("error")

给家长的小贴士

  • 解释为什么用and而不是or(两个条件都要满足)
  • 可以让孩子故意输入错误的用户名或密码,测试程序
  • 强调安全:实际程序中密码不会明文存储

示例:判断奇数和偶数

# 输入一个数字
num = int(input("请输入一个整数:"))

# 判断奇偶
if num % 2 == 0:
    print(f"{num}是偶数")
else:
    print(f"{num}是奇数")

练习2

题目:一张桌子5岁的男孩能推动,7岁以上的女孩能推动。根据输入的性别和年龄,判断是否能推动。

👉 点击查看答案
# 输入性别和年龄
gender = input("请输入性别(男/女):")
age = int(input("请输入年龄:"))

# 判断是否能推动(男孩且5岁,或女孩且大于7岁)
if (gender == "男" and age == 5) or (gender == "女" and age > 7):
    print("能推动桌子")
else:
    print("不能推动桌子")

另一种写法(嵌套if)

gender = input("请输入性别(男/女):")
age = int(input("请输入年龄:"))

if gender == "男":
    if age == 5:
        print("能推动桌子")
    else:
        print("不能推动桌子")
else:  # 性别是"女"
    if age > 7:
        print("能推动桌子")
    else:
        print("不能推动桌子")

if-elif-else语句:多种选择

当需要在三种或更多情况中做选择时,我们使用if-elif-else语句。

if-elif-else的基本语法

if 条件1:
    # 条件1为True时执行
    代码块1
elif 条件2:
    # 条件2为True时执行
    代码块2
elif 条件3:
    # 条件3为True时执行
    代码块3
...
else:
    # 所有条件都不满足时执行
    代码块n

语法要点

  • elifelse if的缩写
  • 可以有多个elif
  • else是可选的
  • 程序会从上到下检查条件,一旦某个条件满足,就执行对应的代码块,然后跳出整个if语句

示例1:成绩分级

从键盘输入小明的Python期末成绩:

  • 当成绩为100分时,奖励一张出游机票
  • 当成绩为[80-99]时,奖励一个iPhone
  • 当成绩为[60-79]时,奖励一本参考书
  • 其他时(低于60),什么奖励也没有
# 输入分数
score = int(input("请输入Python期末成绩:"))

# 判断分数等级
if score == 100:
    print("🎉 完美!奖励一张出游机票!")
elif score >= 80:  # 80-99分
    print("👏 很棒!奖励一个iPhone!")
elif score >= 60:  # 60-79分
    print("👍 及格了!奖励一本参考书!")
else:  # 低于60分
    print("😢 继续努力,没有奖励...")

print("判断结束")

运行示例1(100分):

请输入Python期末成绩:100
🎉 完美!奖励一张出游机票!
判断结束

运行示例2(85分):

请输入Python期末成绩:85
👏 很棒!奖励一个iPhone!
判断结束

运行示例3(65分):

请输入Python期末成绩:65
👍 及格了!奖励一本参考书!
判断结束

运行示例4(50分):

请输入Python期末成绩:50
😢 继续努力,没有奖励...
判断结束

👨‍🏫 给家长的Tips

教学方法建议:

  • 解释为什么score >= 80不需要写成score >= 80 and score < 100
  • 因为如果score是100,第一个条件就满足了,不会继续检查
  • 这种写法叫“短路“逻辑,效率更高
  • 可以在纸上画数轴,标出不同分数段的位置

数学知识融入:分段函数 📐

在数学中,我们学过分段函数,就是一个函数在不同区间有不同的表达式。

例如,快递费的计算:

  • 重量 ≤ 1kg:5元
  • 1kg < 重量 ≤ 3kg:10元
  • 重量 > 3kg:15元

这就是一个分段函数!用if-elif-else可以轻松实现!

数学练习:快递费计算 📝

# 输入快递重量(kg)
weight = float(input("请输入快递重量(kg): "))

# 根据重量计算费用(分段函数)
if weight <= 1:
    fee = 5
elif weight <= 3:  # 注意:1 < weight ≤ 3
    fee = 10
else:  # weight > 3
    fee = 15

print(f"快递费用为: {fee}元")

数学小挑战 🌟

出租车计费也是分段函数:

  • 3公里以内:起步价10元
  • 3-10公里:每公里2元
  • 10公里以上:每公里3元

你能写出计算出租车费用的代码吗?

👉 点击查看答案
# 输入里程数(km)
distance = float(input("请输入里程数(km): "))

# 根据里程计算费用
if distance <= 3:
    fare = 10
elif distance <= 10:  # 3 < distance ≤ 10
    fare = 10 + (distance - 3) * 2
else:  # distance > 10
    fare = 10 + (10 - 3) * 2 + (distance - 10) * 3

print(f"出租车费用为: {fare}元")

数学应用题练习 📝

题目1:年龄分类 写一个程序,根据年龄输出人生阶段:

  • 0-6岁:婴幼儿
  • 7-12岁:小学生
  • 13-15岁:初中生
  • 16-18岁:高中生
  • 19-22岁:大学生
  • 23-60岁:成年人
  • 60岁以上:老年人
👉 点击查看答案
# 输入年龄
age = int(input("请输入年龄: "))

# 判断人生阶段
if age <= 6:
    print("婴幼儿 👶")
elif age <= 12:  # 7-12岁
    print("小学生 🎒")
elif age <= 15:  # 13-15岁
    print("初中生 📚")
elif age <= 18:  # 16-18岁
    print("高中生 🏫")
elif age <= 22:  # 19-22岁
    print("大学生 🎓")
elif age <= 60:  # 23-60岁
    print("成年人 💼")
else:  # 60岁以上
    print("老年人 👴")

示例2:周末活动计划

周末组织活动:

  • 如果是晴天,就出去郊游
  • 如果是阴天,就去参观动物园
  • 如果是下雨天,就去室内游乐场
# 输入天气
weather = input("今天是什么天气?(晴天/阴天/雨天):")

# 根据天气决定活动
if weather == "晴天":
    print("我们去郊游吧!")
elif weather == "阴天":
    print("我们去参观动物园吧!")
elif weather == "雨天":
    print("我们去室内游乐场玩吧!")
else:
    print("输入错误,请重新输入!")

print("活动计划结束")

示例3:学生成绩等级

根据成绩判断等级:

  • 100分:best
  • 90-99分:very good
  • 80-89分:good
  • 60-79分:pass
  • 低于60分:not pass
# 输入分数
score = int(input("请输入学生成绩:"))

# 判断等级
if score == 100:
    print("等级:best 🌟")
elif score >= 90:
    print("等级:very good 👍")
elif score >= 80:
    print("等级:good 🙂")
elif score >= 60:
    print("等级:pass 😐")
else:
    print("等级:not pass 😞")

print("判断结束")

练习3

题目:根据用户输入的数字判断是奇数还是偶数。

👉 点击查看答案
# 输入数字
num = int(input("请输入一个整数:"))

# 判断奇偶
if num % 2 == 0:
    print(f"{num}是偶数")
else:
    print(f"{num}是奇数")

练习4

题目:根据指定的月份打印该月份所属的季节。(3-5月:春天,6-8月:夏天,9-11月:秋天,12-2月:冬天)

👉 点击查看答案
# 输入月份
month = int(input("请输入月份(1-12):"))

# 判断季节
if 3 <= month <= 5:
    print("春天 🌸")
elif 6 <= month <= 8:
    print("夏天 ☀️")
elif 9 <= month <= 11:
    print("秋天 🍂")
else:
    print("冬天 ❄️")

也可以用or写法

month = int(input("请输入月份(1-12):"))

if month == 3 or month == 4 or month == 5:
    print("春天 🌸")
elif month == 6 or month == 7 or month == 8:
    print("夏天 ☀️")
elif month == 9 or month == 10 or month == 11:
    print("秋天 🍂")
else:
    print("冬天 ❄️")

嵌套if语句:条件中的条件

有时候,我们需要在一个条件判断内部再进行条件判断,这就是嵌套if语句

嵌套if的基本语法

if 外层条件:
    if 内层条件:
        # 外层和内层条件都满足时执行
        代码块1
    else:
        # 外层满足但内层不满足时执行
        代码块2
else:
    # 外层条件不满足时执行
    代码块3

注意:每层if都要有自己的缩进!

示例1:活动计划(考虑工作日和天气)

活动计划的安排:

  • 如果今天是工作日,则去上班
  • 如果今天是周末,则外出游玩
    • 同时,如果周末天气晴朗,则去室外游乐场游玩
    • 否则去室内游乐场游玩
# 输入星期几和天气
day = input("今天是星期几?(1-7,1是周一):")
weather = input("今天天气如何?(晴天/其他):")

# 判断是工作日还是周末
if day in ["1", "2", "3", "4", "5"]:
    print("今天是工作日,要去上班 😢")
else:  # 周末(6或7)
    print("今天是周末!🎉")
    # 嵌套判断天气
    if weather == "晴天":
        print("天气晴朗,去室外游乐场玩!")
    else:
        print("天气不好,去室内游乐场玩!")

示例2:运动会决赛分组

学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组。

# 输入成绩和性别
time = float(input("请输入百米赛跑成绩(秒):"))
gender = input("请输入性别(男/女):")

# 判断是否有资格进决赛
if time < 10:
    print("恭喜!你有资格进入决赛!")
    # 嵌套判断性别分组
    if gender == "男":
        print("你被分到男子组 🏃‍♂️")
    else:
        print("你被分到女子组 🏃‍♀️")
else:
    print("很遗憾,成绩未达标,不能进决赛")

给家长的小贴士

  • 解释“嵌套“的概念:一个if在另一个if里面
  • 强调缩进的重要性:每层都有自己的缩进
  • 建议先用自然语言描述逻辑,再转化为代码

练习5

题目:写一个简单的猜数字游戏。程序随机设定一个数字(可以先固定为7),用户输入猜测的数字,程序给出提示“太大了“、“太小了“或“猜对了”。

👉 点击查看答案
# 设定目标数字
target = 7

# 用户输入
guess = int(input("请输入你猜的数字(1-10):"))

# 判断大小
if guess == target:
    print("🎉 恭喜你,猜对了!")
else:
    if guess > target:
        print("太大了!再试一次")
    else:
        print("太小了!再试一次")

print("游戏结束")

运行示例

请输入你猜的数字(1-10):5
太小了!再试一次
游戏结束

请输入你猜的数字(1-10):9
太大了!再试一次
游戏结束

请输入你猜的数字(1-10):7
🎉 恭喜你,猜对了!
游戏结束

综合应用案例

案例1:计算周数和剩余天数

用户输入一个天数,可以输出包含多少周,以及剩余几天。

例如:

  • 输入57天,打印“8 weeks and 1 day“
  • 输入9天,打印“1 week and 2 days“
# 输入天数
days = int(input("请输入总天数:"))

# 计算周数和剩余天数
weeks = days // 7
remaining_days = days % 7

# 根据数量决定单复数
if weeks == 1:
    week_str = "week"
else:
    week_str = "weeks"

if remaining_days == 1:
    day_str = "day"
else:
    day_str = "days"

# 输出结果
print(f"{weeks} {week_str} and {remaining_days} {day_str}")

运行示例

请输入总天数:57
8 weeks and 1 day
请输入总天数:9
1 week and 2 days

给家长的小贴士

  • 解释//(整除)和%(求余)的区别
  • 强调英语中单数和复数的区别
  • 这是一个综合练习,涉及运算、条件判断、字符串格式化

案例2:计算四位数数字之和

从键盘输入任意一个四位数,计算它四位数字相加的和。

# 输入一个四位数
num_str = input("请输入一个四位数:")

# 检查是否为四位数
if len(num_str) != 4:
    print("输入错误!请输入一个四位数!")
else:
    # 将字符串转换为数字
    num = int(num_str)

    # 分解每一位数字
    # 方法1:用字符串切片
    digit1 = int(num_str[0])
    digit2 = int(num_str[1])
    digit3 = int(num_str[2])
    digit4 = int(num_str[3])

    # 计算和
    total = digit1 + digit2 + digit3 + digit4

    print(f"四位数字之和为:{total}")

运行示例

请输入一个四位数:1234
四位数字之和为:10

案例3:判断闰年

写出可以判定某一年是否是闰年的逻辑表达式。

闰年规则

  • 能被4整除但不能被100整除,或者能被400整除的年份
# 输入年份
year = int(input("请输入年份:"))

# 判断闰年
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}年是闰年 📅")
else:
    print(f"{year}年不是闰年")

运行示例

请输入年份:2024
2024年是闰年 📅
请输入年份:1900
1900年不是闰年
请输入年份:2000
2000年是闰年 📅

给家长的小贴士

  • 解释闰年的历史背景(为什么会有闰年)
  • 强调逻辑运算符的优先级:and优先于or
  • 可以让孩子计算自己出生年份是否是闰年

案例4:狗狗年龄换算

根据用户输入的狗狗的年龄得出相当于人的多少岁。

换算规则

  • 狗狗的前2年,第一年相当于人的10.5岁,第二年也相当于10.5岁
  • 往后每一年相当于4岁计算
  • 狗狗最长活20年
# 输入狗狗年龄
dog_age = float(input("请输入狗狗的年龄:"))

# 检查年龄是否合理
if dog_age < 0 or dog_age > 20:
    print("狗狗的年龄应该在0-20岁之间!")
else:
    # 计算相当于人的年龄
    if dog_age <= 2:
        # 前两年,每年10.5岁
        human_age = dog_age * 10.5
    else:
        # 前两年21岁,往后每年4岁
        human_age = 21 + (dog_age - 2) * 4

    print(f"狗狗{dog_age}岁,相当于人类{human_age}岁")

运行示例

请输入狗狗的年龄:1
狗狗1.0岁,相当于人类10.5岁
请输入狗狗的年龄:5
狗狗5.0岁,相当于人类37.0岁

案例5:找三个数中的最大值

用户输入三个数,输出最大的。

# 输入三个数
num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))
num3 = float(input("请输入第三个数:"))

# 找最大值
if num1 >= num2 and num1 >= num3:
    max_num = num1
elif num2 >= num1 and num2 >= num3:
    max_num = num2
else:
    max_num = num3

print(f"最大的数是:{max_num}")

运行示例

请输入第一个数:5
请输入第二个数:12
请输入第三个数:8
最大的数是:12.0

另一种写法(逐步比较)

num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))
num3 = float(input("请输入第三个数:"))

# 假设第一个数最大
max_num = num1

# 如果第二个数更大,更新最大值
if num2 > max_num:
    max_num = num2

# 如果第三个数更大,更新最大值
if num3 > max_num:
    max_num = num3

print(f"最大的数是:{max_num}")

给家长的小贴士

  • 两种方法各有优缺点,可以讨论哪种更好理解
  • 第二种方法更容易扩展到更多数字
  • 为第10章(List)铺垫:可以用list和max()函数简化

常见错误和调试

错误1:忘记冒号

# 错误:if后面没有冒号
if score > 60
    print("及格了")

# 正确
if score > 60:
    print("及格了")

错误2:缩进不正确

# 错误:缩进不一致
if score > 60:
  print("及格了")  # 2个空格
    print("恭喜!")  # 4个空格

# 正确:缩进一致
if score > 60:
    print("及格了")
    print("恭喜!")

错误3:赋值和比较混淆

# 错误:用=而不是==
if score = 100:
    print("完美")

# 正确:用==比较
if score == 100:
    print("完美")

错误4:条件顺序错误

score = 85

# 错误:顺序错了,永远无法判断到80-89
if score >= 60:
    print("及格")
elif score >= 80:
    print("良好")
elif score >= 90:
    print("优秀")

# 正确:从高到低判断
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")

给家长的小贴士

  • 教孩子学会看错误信息(SyntaxError, IndentationError等)
  • 使用print语句在关键位置输出中间结果,帮助调试
  • 用简单的例子测试条件是否正确

条件表达式(三元运算符)

Python还提供了一种简洁的条件表达式,也叫三元运算符

基本语法

结果1 if 条件 else 结果2

解释:如果条件为True,返回结果1;否则返回结果2。

示例:找出两个数中的较大值

# 传统写法
a = 10
b = 20

if a > b:
    max_num = a
else:
    max_num = b

print(f"较大的数是:{max_num}")

用条件表达式简化

a = 10
b = 20

max_num = a if a > b else b

print(f"较大的数是:{max_num}")

练习6

题目:用条件表达式判断一个数是正数、负数还是零,并输出“正数“、“负数“或“零”。

👉 点击查看答案
num = float(input("请输入一个数字:"))

result = "正数" if num > 0 else "负数" if num < 0 else "零"

print(f"{num}是{result}")

注意:这种嵌套的三元表达式可读性较差,不建议过度使用。

综合练习:星期几判断器

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

# 输入第一个字母
first_letter = input("请输入星期几的第一个字母:").lower()

# 判断第一个字母
if first_letter == 'm':
    print("星期一 Monday")
elif first_letter == 't':
    # 需要判断第二个字母
    second_letter = input("请输入第二个字母:").lower()
    if second_letter == 'u':
        print("星期二 Tuesday")
    elif second_letter == 'h':
        print("星期四 Thursday")
    else:
        print("输入错误!")
elif first_letter == 'w':
    print("星期三 Wednesday")
elif first_letter == 'f':
    print("星期五 Friday")
elif first_letter == 's':
    # 需要判断第二个字母
    second_letter = input("请输入第二个字母:").lower()
    if second_letter == 'a':
        print("星期六 Saturday")
    elif second_letter == 'u':
        print("星期日 Sunday")
    else:
        print("输入错误!")
else:
    print("输入错误!")

运行示例

请输入星期几的第一个字母:s
请输入第二个字母:a
星期六 Saturday
请输入星期几的第一个字母:t
请输入第二个字母:u
星期二 Tuesday

章节小结

我们学到了什么

  1. 条件语句:让程序能够根据不同情况做不同决定
  2. if语句:最简单的条件判断
  3. if-else语句:两种选择
  4. if-elif-else语句:多种选择
  5. 嵌套if语句:条件中的条件
  6. 条件表达式:简洁的三元运算符

重要语法回顾

语句结构用途
if 条件:单一条件判断
if-else:两种选择
if-elif-else:多种选择
嵌套if复杂条件判断

编程技巧

  1. 缩进很重要:Python用缩进来组织代码块
  2. 条件顺序:在if-elif中,条件从上到下检查,满足即停止
  3. 冒号不能忘:if、elif、else后面都要有冒号
  4. 布尔运算:用and、or、not组合多个条件
  5. 调试方法:用print输出中间结果,帮助定位问题

下一步

在下一章(第8章),我们将学习循环语句(for和while),让程序能够重复执行某些操作。结合条件语句和循环,我们就能写出更强大的程序!

挑战练习

  1. 必做

    • 写一个程序,输入三个数,输出最小的数
    • 写一个程序,输入年份和月份,输出该月有多少天
    • 写一个程序,输入三角形的三边长,判断能否构成三角形
  2. 选做

    • 写一个简单的计算器,可以加减乘除
    • 写一个石头剪刀布游戏
    • 写一个温度转换器(摄氏度/华氏度/开尔文)
  3. 挑战

    • 写一个猜数字游戏,限制猜测次数(比如5次)
    • 写一个登录系统,可以有注册、登录、修改密码功能
    • 用Turtle库画一个图形,根据用户输入的数字决定画什么图形

加油!你已经学会让程序做决定的能力了!🎉