django33全栈班2025年009 分支语句和大量练习题

127 阅读33分钟

前言

我们已经开启了Python编程的学习之旅。最初,我们认识了Python,了解到它在众多领域的广泛应用。接着,我们成功搭建了Python的运行环境,这是编程实践的基础,如同给战士配备了精良的武器。

我们从最基本的操作学起,写出了第一行Python代码,体验到编程的乐趣。之后,我们学会了数据录入,让程序能够与人交互。还深入学习了Python与浏览器交互、常用数据类型、数学运算符及多条数据录入方法,逐步充实编程知识。

我们掌握了条件和逻辑运算符,使程序能够根据条件做出判断,有了自己的“思考”能力。此前的学习为我们打下了坚实基础,后续我们将进一步深入,挖掘Python编程更多的魅力。

什么是if语句

一、if语句的概念

在Python编程中,if语句是一种非常重要的控制结构。简单来说,if语句就像是程序中的一个“判断官”。它允许程序根据特定的条件来决定是否执行某一段代码。

例如,在日常生活中,我们可能会有这样的思考:如果今天下雨,我就带伞;如果没下雨,我就不带伞。在Python程序里,if语句就是用来实现这种根据条件进行决策的功能。

二、if语句的基本语法

if语句的基本语法格式如下:

if condition:
    # 如果条件为真,执行这里的代码
    statement1
    statement2
   ...

这里的“condition”是一个条件表达式,它可以是比较运算(如a > b)、逻辑运算(如a and b)或者其他能够返回True或False的表达式。当“condition”的值为True时,缩进的“statement”代码块就会被执行。如果“condition”的值为False,那么缩进块内的代码将被跳过。

例如:

num = 5
if num > 3:
    print("这个数字大于3")

在这个例子中,因为变量num的值是5,5大于3,所以条件表达式“num > 3”的值为True,那么“print("这个数字大于3")”这行代码就会被执行。

三、if - else语句

除了基本的if语句,还有if - else语句。它的作用是当条件为真时执行一个代码块,当条件为假时执行另一个代码块。

其语法格式如下:

if condition:
    # 如果条件为真,执行这里的代码
    statement1
else:
    # 如果条件为假,执行这里的代码
    statement2

例如:

num = 2
if num > 3:
    print("这个数字大于3")
else:
    print("这个数字不大于3")

在这个例子中,由于num的值为2,“num > 3”这个条件为假,所以会执行else后面的“print("这个数字不大于3")”。

四、if - elif - else语句

当我们有多个条件需要判断时,就可以使用if - elif - else语句。

语法格式如下:

if condition1:
    # 如果条件1为真,执行这里的代码
    statement1
elif condition2:
    # 如果条件1为假且条件2为真,执行这里的代码
    statement2
else:
    # 如果以上条件都为假,执行这里的代码
    statement3

例如:

num = 4
if num > 5:
    print("这个数字大于5")
elif num > 3:
    print("这个数字大于3但不大于5")
else:
    print("这个数字不大于3")

在这个例子中,因为num的值为4,“num > 5”为假,但是“num > 3”为真,所以会执行“elif num > 3:”后面的代码块,即打印“这个数字大于3但不大于5”。

五、if语句的应用场景

  1. 数据验证 在处理用户输入的数据时,我们经常需要使用if语句来验证数据是否符合要求。例如,在一个要求用户输入年龄的程序中,我们可以使用if语句来检查用户输入的年龄是否在合理范围内。
age = int(input("请输入你的年龄:"))
if age < 0 or age > 150:
    print("你输入的年龄不合理")
else:
    print("你的年龄是", age)
  1. 游戏开发 在游戏开发中,if语句也有广泛的应用。例如,判断游戏角色是否碰到障碍物,是否达到某个任务目标等。 假设在一个简单的跳跃游戏中,当角色的跳跃高度超过一定值时,就给予奖励。
jump_height = 10
if jump_height > 8:
    print("你获得了额外奖励!")
  1. 数据分析 在数据分析中,if语句可以用来对数据进行分类处理。例如,将一组数据中的正数和负数分开。
data = [1, -2, 3, -4, 5]
positive_numbers = []
negative_numbers = []
for num in data:
    if num > 0:
        positive_numbers.append(num)
    elif num < 0:
        negative_numbers.append(num)
print("正数有:", positive_numbers)
print("负数有:", negative_numbers)

if语句是Python编程中控制程序流程的关键工具,掌握好它可以让我们编写的程序更加灵活和智能。

课堂练习

以下是一些关于if语句的课堂练习题:

练习一:判断数字的正负性

题目: 编写一个程序,使用if语句判断用户输入的数字是正数、负数还是零。 代码

num = float(input("请输入一个数字:"))
if num > 0:
    print("这个数字是正数")
elif num < 0:
    print("这个数字是负数")
else:
    print("这个数字是零")

答案解释: 首先,程序通过input函数获取用户输入的数字,并使用float函数将其转换为浮点数类型存储在变量num中。然后,使用if - elif - else语句进行判断。如果num大于0,满足if条件,就会执行print("这个数字是正数");如果num小于0,满足elif条件,就会执行print("这个数字是负数");如果num既不大于0也不小于0,那就只能是0,此时满足else条件,执行print("这个数字是零")

练习二:判断成绩等级

题目: 给定学生的考试成绩(满分100分),使用if语句判断其成绩等级。90分及以上为A,80 - 89分为B,70 - 79分为C,60 - 69分为D,60分以下为E。 代码

score = int(input("请输入学生的成绩:"))
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("E")

答案解释: 程序先获取学生的成绩并转换为整数类型存储在score中。然后从高分到低分依次判断。如果score大于等于90,满足第一个if条件,输出“A”;如果不满足,继续判断score是否大于等于80,满足则输出“B”,以此类推。当所有前面的条件都不满足时,也就是成绩小于60分,执行else部分,输出“E”。

练习三:判断是否为闰年

题目: 编写一个程序,使用if语句判断用户输入的年份是否为闰年。闰年的判断规则是:能被4整除但不能被100整除的年份为闰年,或者能被400整除的年份也是闰年。 代码

year = int(input("请输入一个年份:"))
if (year % 4 == 0 and year % 100!= 0or year % 400 == 0:
    print(year, "是闰年")
else:
    print(year, "不是闰年")

答案解释: 程序获取用户输入的年份并转换为整数存储在year中。然后通过条件表达式(year % 4 == 0 and year % 100!= 0) or year % 400 == 0来判断是否为闰年。如果满足这个条件,说明是闰年,执行print(year, "是闰年");否则执行else部分,输出该年份不是闰年。其中%是取模运算符,用于获取除法运算的余数,通过判断余数是否符合闰年规则来确定年份的性质。

练习四:判断数字的奇偶性

题目: 编写一个程序,使用if语句判断用户输入的整数是奇数还是偶数。 代码

num = int(input("请输入一个整数:"))
if num % 2 == 0:
    print(num"是偶数")
else:
    print(num"是奇数")

答案解释: 同样先获取用户输入的整数并存储在num中。通过判断num除以2的余数是否为0来确定其奇偶性。如果num % 2 == 0,说明能被2整除,是偶数,执行print(num, "是偶数");否则就是奇数,执行else部分的print(num, "是奇数")

练习五:判断三角形类型

题目: 输入三角形的三条边长,使用if语句判断该三角形是等边三角形、等腰三角形还是一般三角形。 代码

a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if a == b == c:
    print("这是一个等边三角形")
elif a == b or a == c or b == c:
    print("这是一个等腰三角形")
else:
    print("这是一个一般三角形")

答案解释: 程序分别获取三角形的三条边长并存储在abc中。首先判断三条边是否都相等,如果a == b == c,满足条件则输出“这是一个等边三角形”;如果不满足等边三角形条件,再判断是否有两条边相等,即a == b or a == c or b == c,满足则输出“这是一个等腰三角形”;如果前面两个条件都不满足,说明三条边都不相等,就是一般三角形,执行else部分输出“这是一个一般三角形”。在判断边长相等时,使用==运算符进行比较。

练习六:判断月份天数

题目: 编写一个程序,根据用户输入的月份(1 - 12),使用 if 语句判断该月份的天数(不考虑闰年情况,假设 2 月有 28 天)。 代码

month = int(input("请输入月份(1 - 12):"))
if month in [135781012]:
    print(month, "月有 31 天")
elif month in [46911]:
    print(month, "月有 30 天")
else:
    print(month, "月有 28 天")

答案解释: 程序获取用户输入的月份并转换为整数存储在month中。通过in关键字判断month是否在表示 31 天的月份列表[1, 3, 5, 7, 8, 10, 12]或者 30 天的月份列表[4, 6, 9, 11]中,如果在相应列表中,就输出该月份对应的天数;如果都不在,那就只能是 2 月,输出 28 天。

练习七:判断字符类型

题目: 输入一个字符,使用 if 语句判断它是字母、数字还是其他字符。 代码

char = input("请输入一个字符:")
if char.isalpha():
    print(char"是字母")
elif char.isdigit():
    print(char"是数字")
else:
    print(char"是其他字符")

答案解释: 程序获取用户输入的一个字符存储在char中。isalpha方法用于判断字符是否为字母,如果char.isalpha()返回True,则说明是字母,执行相应的print语句;isdigit方法用于判断字符是否为数字,如果char.isdigit()返回True,则说明是数字,执行对应的print语句;如果前两个条件都不满足,就执行else部分,说明是其他字符。

练习八:判断年龄范围并输出相应信息

题目: 根据用户输入的年龄,使用 if 语句进行如下判断:如果年龄小于 18 岁,输出“未成年人”;如果年龄在 18 岁到 60 岁之间(包括 18 岁和 60 岁),输出“成年人”;如果年龄大于 60 岁,输出“老年人”。 代码

age = int(input("请输入年龄:"))
if age < 18:
    print("未成年人")
elif age <= 60:
    print("成年人")
else:
    print("老年人")

答案解释: 首先获取用户输入的年龄并转换为整数存储在age中。然后通过if - elif - else结构进行判断。如果age小于 18,满足第一个if条件,输出“未成年人”;如果age大于等于 18 且小于等于 60,满足elif条件,输出“成年人”;如果age大于 60,满足else条件,输出“老年人”。

练习九:判断登录状态

题目: 假设系统中存在用户名“admin”和密码“123456”。编写一个程序,使用 if 语句根据用户输入的用户名和密码判断登录是否成功,如果成功,输出“登录成功”,否则输出“登录失败”。 代码

username = input("请输入用户名:")
password = input("请输入密码:")
if username == "admin" and password == "123456":
    print("登录成功")
else:
    print("登录失败")

答案解释: 程序分别获取用户输入的用户名和密码,存储在usernamepassword中。然后通过if语句判断输入的用户名和密码是否与预设的“admin”和“123456”完全匹配,如果username == "admin"password == "123456"这两个条件同时满足,说明登录信息正确,执行print("登录成功");否则执行else部分,输出“登录失败”。

练习十:判断数字是否在指定区间内

题目: 输入一个数字,使用 if 语句判断它是否在区间(10, 20)内(不包括 10 和 20),如果在该区间内,输出“该数字在区间(10, 20)内”,否则输出“该数字不在区间(10, 20)内”。 代码

num = float(input("请输入一个数字:"))
if 10 < num < 20:
    print("该数字在区间(10, 20)内")
else:
    print("该数字不在区间(10, 20)内")

答案解释: 获取用户输入的数字并存储在num中。通过10 < num < 20这样简洁的条件表达式判断num是否在指定区间内,如果满足该条件,说明数字在区间中,执行print("该数字在区间(10, 20)内");否则执行else部分,输出“该数字不在区间(10, 20)内”。这种写法利用了 Python 中条件表达式的连续比较特性,使代码更加简洁直观。

课堂练习进阶

练习一:判断数字的正负性

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise1():
    """
    该函数用于判断用户输入数字的正负性。
    获取用户输入的数字,若大于 0 则输出为正数,小于 0 则输出为负数,等于 0 则输出为零。
    """
    # 获取用户输入的数字,转换为浮点数类型
    num = float(pw_input("请输入一个数字:"))
    if num > 0:
        put_text("这个数字是正数")
    elif num < 0:
        put_text("这个数字是负数")
    else:
        put_text("这个数字是零")

if __name__ == "__main__":
    exercise1()

练习二:判断成绩等级

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise2():
    """
    根据用户输入的成绩判断等级。
    成绩大于等于 90 分为 A,80 - 89 分为 B,70 - 79 分为 C,60 - 69 分为 D,小于 60 分为 E。
    """
    # 获取用户输入的成绩,转换为整数类型
    score = int(pw_input("请输入学生的成绩:"))
    if score >= 90:
        put_text("A")
    elif score >= 80:
        put_text("B")
    elif score >= 70:
        put_text("C")
    elif score >= 60:
        put_text("D")
    else:
        put_text("E")

if __name__ == "__main__":
    exercise2()

练习三:判断是否为闰年

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise3():
    """
    判断用户输入的年份是否为闰年。
    能被 4 整除但不能被 100 整除的年份为闰年,或者能被 400 整除的年份也是闰年。
    """
    # 获取用户输入的年份,转换为整数类型
    year = int(pw_input("请输入一个年份:"))
    if (year % 4 == 0 and year % 100!= 0or year % 400 == 0:
        put_text(year, "是闰年")
    else:
        put_text(year, "不是闰年")

if __name__ == "__main__":
    exercise3()

练习四:判断数字的奇偶性

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise4():
    """
    判断用户输入的整数是奇数还是偶数。
    通过判断该整数除以 2 的余数是否为 0 来确定奇偶性。
    """
    # 获取用户输入的整数,转换为整数类型
    num = int(pw_input("请输入一个整数:"))
    if num % 2 == 0:
        put_text(num, "是偶数")
    else:
        put_text(num, "是奇数")

if __name__ == "__main__":
    exercise4()

练习五:判断三角形类型

from pywebio3.input import input, input_group, FLOAT
from pywebio3.output import put_text

def exercise5():
    """
    根据用户输入的三角形三条边长判断三角形类型。
    三条边相等为等边三角形,两条边相等为等腰三角形,三边都不相等为一般三角形。
    """
    # 使用 input_group 同时获取三条边的长度,均为浮点数类型,注意要给每个输入项设置 name 参数
    data = input_group("请输入三角形三条边的长度", [
        input(name='a'type=FLOAT),  # 这里 'a' 就是 name 参数,指定了这个输入项的名称,方便后续提取对应的值
        input(name='b'type=FLOAT),
        input(name='c'type=FLOAT)
    ])
    a = data['a']  # 通过名称来获取对应输入的值
    b = data['b']
    c = data['c']
    if a == b == c:
        put_text("这是一个等边三角形")
    elif a == b or a == c or b == c:
        put_text("这是一个等腰三角形")
    else:
        put_text("这是一个一般三角形")

if __name__ == "__main__":
    exercise5()

练习六:判断月份天数

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise6():
    """
    根据用户输入的月份判断该月的天数(不考虑闰年情况,2 月固定 28 天)。
    1、3、5、7、8、10、12 月有 31 天,4、6、9、11 月有 30 天。
    """
    # 获取用户输入的月份,转换为整数类型
    month = int(pw_input("请输入月份(1 - 12):"))
    if month in [135781012]:
        put_text(month, "月有 31 天")
    elif month in [46911]:
        put_text(month, "月有 30 天")
    else:
        put_text(month, "月有 28 天")

if __name__ == "__main__":
    exercise6()

练习七:判断字符类型

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise7():
    """
    判断用户输入的字符是字母、数字还是其他字符。
    使用字符串的 isalpha 和 isdigit 方法进行判断。
    """
    # 获取用户输入的字符
    char = pw_input("请输入一个字符:")
    if char.isalpha():
        put_text(char, "是字母")
    elif char.isdigit():
        put_text(char, "是数字")
    else:
        put_text(char, "是其他字符")

if __name__ == "__main__":
    exercise7()

练习八:判断年龄范围并输出相应信息

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise8():
    """
    根据用户输入的年龄判断所属阶段。
    小于 18 岁为未成年人,18 岁到 60 岁(包括 18 岁和 60 岁)为成年人,大于 60 岁为老年人。
    """
    # 获取用户输入的年龄,转换为整数类型
    age = int(pw_input("请输入年龄:"))
    if age < 18:
        put_text("未成年人")
    elif age <= 60:
        put_text("成年人")
    else:
        put_text("老年人")

if __name__ == "__main__":
    exercise8()

练习九:判断登录状态

from pywebio3.input import input, input_group
from pywebio3.output import put_text


def exercise9():
    """
    判断用户输入的用户名和密码是否与预设的匹配,以确定登录状态。
    预设用户名是 "admin",密码是 "123456"。
    """
    # 使用 input_group 同时获取用户名和密码
    data = input_group("请输入登录信息", [
        input("账号", name='username', ),
        input("密码", name='password', )
    ])
    username = data['username']
    password = data['password']
    if username == "admin" and password == "123456":
        put_text("登录成功")
    else:
        put_text("登录失败")


if __name__ == "__main__":
    exercise9()

练习十:判断数字是否在指定区间内

from pywebio3.input import input as pw_input
from pywebio3.output import put_text

def exercise10():
    """
    判断用户输入的数字是否在区间(10, 20)内(不包括端点值)。
    """
    # 获取用户输入的数字,转换为浮点数类型
    num = float(pw_input("请输入一个数字:"))
    if 10 < num < 20:
        put_text("该数字在区间(10, 20)内")
    else:
        put_text("该数字不在区间(10, 20)内")

if __name__ == "__main__":
    exercise10()

课后练习题

以下是将 pywebio 替换为 pywebio3 的 10 道练习题,同时包含题目、代码、代码解释和点评:

练习一:判断数字是否是质数

题目: 编写一个程序,使用 pywebio3 输入一个大于 1 的整数,判断该数字是否为质数。质数是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise1():
    """
    该函数用于判断用户输入的数字是否为质数。
    质数是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。
    """
    # 获取用户输入的数字,转换为整数类型
    num = int(pw_input("请输入一个大于 1 的整数:"))
    if num <= 1:
        put_text("请输入大于 1 的整数。")
        return
    is_prime = True
    for i in range(2int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        put_text(f"{num} 是一个质数。")
    else:
        put_text(f"{num} 不是一个质数。")


if __name__ == "__main__":
    exercise1()

代码解释

  1. 使用 pw_input 函数从 pywebio3 中获取用户输入的数字,并将其转换为整数存储在 num 变量中。
  2. 首先检查输入是否小于等于 1,如果是,则输出提示信息并返回。
  3. 假设输入的数是质数,将 is_prime 设为 True
  4. 从 2 到 num 的平方根加 1 的范围遍历,如果 num 能被其中任何一个数整除,说明不是质数,将 is_prime 设为 False 并退出循环。
  5. 最后根据 is_prime 的值输出相应的结果。

点评: 这道题考查了学生对 for 循环、条件判断和数学概念(质数)的理解。同时,通过 pywebio3 实现了用户输入和输出的交互,让学生学会在 Web 环境下处理用户输入并输出结果。对于学生掌握循环和条件判断的综合运用有很好的帮助。

练习二:找出三个数中的最大值

题目: 使用 pywebio3 编写一个程序,让用户输入三个数,找出这三个数中的最大值。

from pywebio3.input import input, input_group, FLOAT
from pywebio3.output import put_text


def exercise2():
    """
    该函数用于找出用户输入的三个数中的最大值。
    使用 input_group 同时获取三个数,并比较大小。
    """
    # 使用 input_group 同时获取三个数,均为浮点数类型
    data = input_group("请输入三个数", [
        input(name='num1'type=FLOAT),
        input(name='num2'type=FLOAT),
        input(name='num3'type=FLOAT)
    ])
    num1 = data['num1']
    num2 = data['num2']
    num3 = data['num3']
    max_num = num1
    if num2 > max_num:
        max_num = num2
    if num3 > max_num:
        max_num = num3
    put_text(f"三个数中的最大值是: {max_num}")


if __name__ == "__main__":
    exercise2()

代码解释

  1. 使用 input_group 函数从 pywebio3 中同时获取三个数,将它们存储在 data 字典中。
  2. 分别将三个数取出存储在 num1num2num3 变量中。
  3. 假设 num1 为最大值,存储在 max_num 中。
  4. 依次与 num2num3 比较,如果它们更大,则更新 max_num 的值。
  5. 最后输出最大值。

点评: 这道题主要练习了变量的赋值、条件判断和使用 input_group 进行多输入处理。帮助学生掌握如何在多个输入中找出最大值,是对基本逻辑思维和 pywebio3 多输入处理的巩固。

练习三:计算 BMI 并给出健康建议

题目: 使用 pywebio3 编写一个程序,让用户输入身高(cm)和体重(kg),计算 BMI 并给出健康建议。BMI = 体重(kg)/ 身高(m)的平方。

from pywebio3.input import input, input_group, FLOAT
from pywebio3.output import put_text


def exercise3():
    """
    该函数用于根据用户输入的身高和体重计算 BMI,并给出健康建议。
    BMI = 体重(kg)/ 身高(m)的平方
    """
    # 使用 input_group 同时获取身高和体重,注意单位转换
    data = input_group("请输入您的身高(cm)和体重(kg)", [
        input("身高", name='height'type=FLOAT),
        input("体重", name='weight'type=FLOAT)
    ])
    height = data['height'] / 100  # 将身高从 cm 转换为 m
    weight = data['weight']
    bmi = weight / (height ** 2)
    put_text(f"您的 BMI 是: {bmi:.2f}")
    if bmi < 18.5:
        put_text("您的体重过轻,建议增加营养。")
    elif 18.5 <= bmi < 24.9:
        put_text("您的体重正常,继续保持哦!")
    elif 25 <= bmi < 29.9:
        put_text("您超重了,建议适当运动和控制饮食。")
    else:
        put_text("您肥胖了,需要更加注重健康,加强锻炼和控制饮食哦。")


if __name__ == "__main__":
    exercise3()

代码解释

  1. 通过 input_group 函数从 pywebio3 中获取用户输入的身高和体重,将它们存储在 data 字典中。
  2. 将身高从厘米转换为米。
  3. 计算 BMI 值。
  4. 根据 BMI 值使用 if-elif-else 语句给出不同的健康建议。

点评: 这道题涉及到基本的数学计算、条件判断和用户输入处理,同时结合实际生活场景,让学生学会如何根据不同的条件输出不同的信息,并且涉及了单位转换的细节,有助于学生将编程知识应用到实际问题中。

练习四:判断能否构成直角三角形

题目: 使用 pywebio3 编写一个程序,让用户输入三角形的三条边长,判断能否构成直角三角形。利用勾股定理:a² + b² = c² 判断是否为直角三角形。

from pywebio3.input import input, input_group, FLOAT
from pywebio3.output import put_text


def exercise4():
    """
    该函数用于根据用户输入的三角形三条边长,判断能否构成直角三角形。
    利用勾股定理:a^2 + b^2 = c^2 判断是否为直角三角形。
    """
    # 使用 input_group 同时获取三条边的长度,均为浮点数类型
    data = input_group("请输入三角形三条边的长度", [
        input(name='a'type=FLOAT),
        input(name='b'type=FLOAT),
        input(name='c'type=FLOAT)
    ])
    a = data['a']
    b = data['b']
    c = data['c']
    sides = [a, b, c]
    sides.sort()  # 对三边长度进行排序
    if abs(sides[0] ** 2 + sides[1] ** 2 - sides[2] ** 2) < 1e-6:  # 考虑浮点数运算的精度误差
        put_text("这三条边可以构成直角三角形。")
    else:
        put_text("这三条边不能构成直角三角形。")


if __name__ == "__main__":
    exercise4()

代码解释

  1. 使用 input_group 函数从 pywebio3 中获取三角形的三条边长。
  2. 将三条边存储在 abc 变量中,并将它们存储在 sides 列表中。
  3. sides 列表排序,以便于后续使用勾股定理判断。
  4. 利用勾股定理,考虑浮点数运算的精度误差,判断是否为直角三角形。

点评: 这道题要求学生理解勾股定理,并运用列表和条件判断。在处理浮点数运算时,引入了精度误差的考虑,培养学生处理复杂数学逻辑和实际编程问题中精度问题的能力。

练习五:根据温度输出不同的着装建议

题目: 使用 pywebio3 编写一个程序,让用户输入当前温度(单位:摄氏度),根据温度给出不同的着装建议。温度小于 10 度建议穿厚外套,10 - 20 度穿薄外套,20 - 30 度穿长袖,大于 30 度穿短袖。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise5():
    """
    该函数根据用户输入的温度给出不同的着装建议。
    温度小于 10 度建议穿厚外套,10 - 20 度穿薄外套,20 - 30 度穿长袖,大于 30 度穿短袖。
    """
    # 获取用户输入的温度,转换为浮点数类型
    temperature = float(pw_input("请输入当前温度(单位:摄氏度):"))
    if temperature < 10:
        put_text("天气较冷,建议穿厚外套哦!")
    elif 10 <= temperature < 20:
        put_text("天气适中,穿薄外套比较合适。")
    elif 20 <= temperature < 30:
        put_text("天气有点热,穿长袖就可以啦。")
    else:
        put_text("天气很热,穿短袖吧!")


if __name__ == "__main__":
    exercise5()

代码解释

  1. 使用 pw_input 函数从 pywebio3 中获取用户输入的温度,并将其转换为浮点数存储在 temperature 变量中。
  2. 通过 if-elif-else 结构根据不同的温度范围给出不同的着装建议。

点评: 这道题是一个简单但实用的练习,让学生将条件判断应用到实际场景中,同时使用 pywebio3 处理用户输入,使程序更加具有交互性,增强学生对条件语句和输入输出的掌握。

练习六:判断是否是水仙花数

题目: 使用 pywebio3 编写一个程序,让用户输入一个三位数,判断该数是否为水仙花数。水仙花数是指一个 3 位数,它的每一位上的数字的 3 次幂之和等于它本身。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise6():
    """
    该函数用于判断用户输入的三位数是否为水仙花数。
    水仙花数是指一个 3 位数,它的每一位上的数字的 3 次幂之和等于它本身。
    """
    # 获取用户输入的数字,转换为整数类型
    num = int(pw_input("请输入一个三位数:"))
    if 100 <= num <= 999:
        original_num = num
        digit_sum = 0
        while num > 0:
            digit = num % 10
            digit_sum += digit ** 3
            num //= 10
        if digit_sum == original_num:
            put_text(f"{original_num} 是水仙花数。")
        else:
            put_text(f"{original_num} 不是水仙花数。")
    else:
        put_text("请输入一个三位数。")


if __name__ == "__main__":
    exercise6()

代码解释

  1. pw_inputpywebio3 获取用户输入的数字,并将其转换为整数存储在 num 中。
  2. 首先检查输入是否为三位数,如果不是则输出提示信息。
  3. 保存原始数字,使用 while 循环提取数字的每一位,计算每一位的三次方并求和存储在 digit_sum 中。
  4. 比较 digit_sum 和原始数字,输出相应结果。

点评: 这道题要求学生对数字的位数提取和数学计算有一定的理解,通过 while 循环和条件判断来实现,同时对用户输入进行了范围检查,巩固了学生对数字操作和循环的运用。

练习七:根据星期几推荐不同的活动

题目: 使用 pywebio3 编写一个程序,让用户输入星期几,根据输入的星期几推荐不同的活动。例如,周一至周五学习或工作,周六周日休息或娱乐。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise7():
    """
    该函数根据用户输入的星期几推荐不同的活动。
    例如,周一至周五学习或工作,周六周日休息或娱乐。
    """
    # 获取用户输入的星期几
    day = pw_input("请输入星期几:")
    if day.lower() in ['1''2''3''4''5']:
        put_text("今天是工作日,努力学习或工作吧!")
    elif day.lower() in ['6''7']:
        put_text("今天是周末,好好休息或娱乐一下吧!")
    else:
        put_text("请输入有效的星期几。")


if __name__ == "__main__":
    exercise7()

代码解释

  1. 使用 pw_input 函数从 pywebio3 中获取用户输入的星期几存储在 day 变量中。
  2. day 转换为小写,通过 if-elif-else 结构根据不同的星期给出不同的活动建议。

点评: 这道题重点在于字符串的处理和条件判断,让学生学会处理用户输入的文本信息,并根据文本内容进行相应的操作,是对 if-elif-else 语句的进一步巩固和实际应用。

练习八:计算阶乘

题目: 使用 pywebio3 编写一个程序,让用户输入一个非负整数,计算该数的阶乘。n 的阶乘定义为 n! = n * (n - 1) * (n - 2) *... * 1。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise8():
    """
    该函数用于计算用户输入数字的阶乘。
    n 的阶乘定义为 n! = n * (n - 1) * (n - 2) *... * 1
    """
    # 获取用户输入的数字,转换为整数类型
    num = int(pw_input("请输入一个非负整数:"))
    if num < 0:
        put_text("请输入一个非负整数。")
        return
    factorial = 1
    for i in range(1, num + 1):
        factorial *= i
    put_text(f"{num} 的阶乘是: {factorial}")


if __name__ == "__main__":
    exercise8()

代码解释

  1. 使用 pw_input 函数从 pywebio3 中获取用户输入的数字并转换为整数存储在 num 中。
  2. 先检查输入是否为非负整数,如果不是则输出提示信息并返回。
  3. 使用 for 循环计算阶乘,累乘结果存储在 factorial 中。
  4. 输出结果。

点评: 这道题考查了学生对 for 循环和乘法运算的掌握,同时涉及到输入的检查,有助于学生理解阶乘的计算逻辑和编程实现。

练习九:根据输入的字符串长度输出不同信息

题目: 使用 pywebio3 编写一个程序,让用户输入一个字符串,根据字符串的长度输出不同信息。字符串长度小于 5 简短,5 到 10 中等,大于 10 较长。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise9():
    """
    该函数根据用户输入的字符串长度输出不同信息。
    字符串长度小于 5 简短,5 到 10 中等,大于 10 较长。
    """
    # 获取用户输入的字符串
    string = pw_input("请输入一个字符串:")
    length = len(string)
    if length < 5:
        put_text("您输入的字符串比较简短。")
    elif 5 <= length <= 10:
        put_text("您输入的字符串长度适中。")
    else:
        put_text("您输入的字符串较长。")


if __name__ == "__main__":
    exercise9()

代码解释

  1. 使用 pw_input 函数从 pywebio3 中获取用户输入的字符串存储在 string 变量中。
  2. 计算字符串的长度存储在 length 变量中。
  3. 通过 if-elif-else 结构根据长度输出不同信息。

点评: 这道题主要练习了字符串长度的计算和条件判断,是对字符串处理和条件语句的基本应用,有助于学生熟悉字符串操作和条件判断的结合。

练习十:判断是否为回文数

题目: 使用 pywebio3 编写一个程序,让用户输入一个整数,判断该数是否为回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的数字。

from pywebio3.input import input as pw_input
from pywebio3.output import put_text


def exercise10():
    """
    该函数用于判断用户输入的数字是否为回文数。
    回文数是指正序(从左向右)和倒序(从右向左)读都是一样的数字。
    """
    # 获取用户输入的数字,转换为整数类型
    num = int(pw_input("请输入一个整数:"))
    original_num = num
    reversed_num = 0
    while num > 0:
        digit = num % 10
        reversed_num = reversed_num * 10 + digit
        num //= 10
    if original_num == reversed_num:
        put_text(f"{original_num} 是回文数。")
    else:
        put_text(f"{original_num} 不是回文数。")


if __name__ == "__main__":
    exercise10()

代码解释

  1. 使用 pw_input 函数从 pywebio3 中获取用户输入的数字并转换为整数存储在 num 中。
  2. 保存原始数字。
  3. 使用 while 循环将数字倒序存储在 reversed_num 中。
  4. 比较 original_numreversed_num,输出相应结果。

点评: 这道题帮助学生理解数字的倒序操作和条件判断,同时通过 pywebio3 进行用户输入输出,巩固学生对循环和条件语句的运用,以及对回文数概念的编程实现。

这些练习题可以让学生在使用 pywebio3 的过程中,不断巩固 Python 的基础知识,同时增强他们在 Web 交互编程方面的能力。你可以根据学生的实际情况,对这些练习题进行讲解和指导,帮助他们更好地掌握相关知识。

总结

首先,我们从基础概念入手,了解了if语句是什么。它是编程中的一种控制结构,能够根据特定条件决定程序是否执行某段代码,就像日常生活中的决策一样。

接着,深入学习了if语句的基本语法。掌握如何正确书写条件表达式,以及当条件为真时如何让代码准确执行。同时,还学习了if - else语句,这种语句在条件判断上更加灵活,当条件成立时执行一组代码,不成立时则执行另一组。在此基础上,if - elif - else语句进一步拓展了多条件判断的能力,能够处理多个不同条件的情况,使程序能够根据不同情况做出更精准的反应。

在应用场景方面,if语句的应用极为广泛。在判断数字的正负性时,通过if语句可以轻松对输入的数字进行分类;在判断成绩等级时,依据设定的分数区间,利用if语句可以给学生的成绩划分出不同的等级;判断是否为闰年的情况,借助if语句和相关的数学逻辑,能够准确识别年份的性质;判断数字的奇偶性也是if语句的典型应用,根据数字除以2的余数情况来确定其奇偶;判断三角形类型时,使用if语句结合三角形三边关系,可以区分等边、等腰和一般三角形;判断月份天数时,通过if语句结合月份的特征,能够快速得出每个月的天数;判断字符类型时,利用if语句配合字符的判断方法,可以区分字母、数字和其他字符;判断年龄范围并输出相应信息,if语句能够根据不同年龄段给出恰当的提示;判断登录状态时,通过if语句对比输入的用户名和密码与预设值,确定登录是否成功;判断数字是否在指定区间内,if语句可以精确判断一个数字是否处于特定范围。

最后,通过课堂练习和进阶练习反复巩固对if语句的理解和应用。这些练习包括判断数字正负性、成绩等级、闰年、奇偶性、三角形类型、月份天数、字符类型、年龄范围、登录状态、数字区间等内容,通过不断地练习,能够更加熟练地运用if语句编写程序,提高解决实际问题的编程能力。

宝子们,我在 Python 的世界里摸爬滚打十余载,积累了不少心得体会。如今想把这些年的经验和知识毫无保留地分享给有缘的小伙伴。要是你对 Python 学习感兴趣,欢迎来试听一二,也可以随时在评论区留言或者私信我,咱们一起探讨,共同进步,开启 Python 学习的奇妙之旅!

人生苦短, 我用Python, 坚持每天学习, 坚持每天进步一点点...