前言
在过往的学习历程中,我们已成功跨越 Python 编程的多个重要阶段,扎实地掌握了基础数据类型的运用,熟练地操纵算术运算符进行精准的数值运算,灵活运用比较运算符构建条件表达式,深入理解条件运算符以实现复杂的逻辑判断,并巧妙地运用分支语句掌控程序的流程走向。同时,我们还通过大量的练习题,不断巩固所学知识,磨砺编程技巧,将理论转化为实际的编程能力。如今,我们站在新的起点,即将踏上学习循环语句的征程,进一步拓展我们的编程技能边界,探索 Python 编程世界中更加精彩的领域,为解决更为复杂和多样化的问题增添有力的工具。
循环概述
Python 中的循环语句是编程中极为重要的控制结构,它允许我们多次执行一段代码,极大地提高了代码的复用性和效率,为处理重复性任务提供了简洁而强大的解决方案。
一、循环语句的作用和用途
- 重复执行代码:循环语句的核心作用就是让特定的代码块能够按照预定的条件多次执行。这对于处理需要重复操作的数据集合或执行相同逻辑的任务时非常关键。例如,当需要对一个列表中的每个元素进行相同的操作,如打印、修改或统计,循环语句就能轻松实现。
- 遍历数据结构:常用于遍历各种数据结构,像列表、元组、字符串和字典等。通过循环,可以逐个访问这些数据结构中的元素,进行数据的提取、处理和分析。例如,在一个包含学生成绩的列表中,使用循环来计算总成绩或平均成绩。
- 实现迭代算法:许多算法本质上是迭代的,需要多次重复执行相同的步骤,直到满足特定条件为止。循环语句为实现这些迭代算法提供了基础,如数值计算中的迭代法求解方程、搜索算法中的循环查找等。
二、循环语句的语法
for循环语法:
for 变量 in 可迭代对象:
# 循环体代码,这里的代码会针对可迭代对象中的每个元素执行一次
循环体语句
在这个语法中,变量 会依次取 可迭代对象(如列表、字符串等)中的每个元素的值,然后执行循环体中的代码。例如:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
这段代码会依次打印出列表 fruits 中的每个水果名称。
while循环语法:
while 条件表达式:
# 只要条件表达式为真,就会一直执行循环体代码
循环体语句
while 循环会在每次执行循环体之前先检查 条件表达式 的值,如果为 True,则执行循环体,执行完后再次检查条件,直到条件变为 False 为止。例如:
count = 0
while count < 5:
print(count)
count += 1
这段代码会从 0 开始,每次循环打印当前的 count 值,并将 count 加 1,直到 count 等于 5 时停止循环。
三、使用细节和注意事项
- 循环控制变量的更新:在
for循环中,循环控制变量(如for循环中的变量)会自动按照可迭代对象的迭代顺序进行更新。但在while循环中,必须手动更新循环控制条件中使用的变量,否则可能导致循环无法终止,造成死循环。例如,在上面的while循环示例中,如果忘记了count += 1这一行,循环就会一直执行下去。 - 循环体中的语句缩进:循环体中的代码必须要有正确的缩进,这是 Python 语法的重要特点。缩进不正确会导致语法错误或逻辑错误,使程序无法正常运行或得到预期的结果。通常使用 4 个空格或一个制表符进行缩进。
break和continue语句的使用:break语句用于立即终止整个循环,即使循环条件仍然为真。例如,在一个查找特定元素的循环中,当找到目标元素后,就可以使用break语句跳出循环,不再继续查找。continue语句则是跳过当前循环的剩余部分,直接进入下一次循环的迭代。例如,在一个遍历列表并打印元素的循环中,如果遇到某个特定条件的元素不想打印,就可以使用continue语句跳过它,继续下一个元素的处理。但要注意使用这两个语句时,要确保不会影响循环的正常逻辑和预期结果。
- 循环嵌套:可以在一个循环内部嵌套另一个循环,实现更复杂的逻辑。例如,在处理二维数据结构(如矩阵)时,可以使用嵌套的
for循环来遍历每个元素。但要注意循环嵌套的层数不宜过多,否则会使代码的可读性变差,也容易出现逻辑错误。同时,在嵌套循环中,内层循环的执行次数是外层循环执行次数与内层循环可迭代对象长度的乘积,要考虑性能问题。
四、学习建议
- 多做练习题:通过大量不同类型的练习题来加深对循环语句的理解和掌握。可以从简单的数字序列求和、打印图形等题目开始,逐渐过渡到处理复杂的数据结构和实际问题,如数据分析、算法实现等。
- 结合实际场景学习:将循环语句的学习与实际生活或工作中的场景相结合。例如,模拟超市收银系统中计算商品总价的过程、统计一篇文章中单词的出现频率等,这样可以更好地理解循环语句在解决实际问题中的作用和应用方式。
- 理解迭代思想:不仅仅是学习循环语句的语法,更要深入理解迭代的思想。明白在什么情况下适合使用循环来解决问题,以及如何设计循环的逻辑和条件,这对于提高编程能力和解决复杂问题的能力非常重要。
- 阅读优秀代码:阅读其他优秀的 Python 代码,学习他人如何巧妙地运用循环语句来实现各种功能。可以参考开源项目、Python 官方文档中的示例代码等,借鉴他人的编程风格和技巧,不断提升自己的编程水平。
课堂练习
练习 1:计算 1 到 n 的累加和
题目:
编写一个使用 pywebio3 的程序,让用户输入一个正整数 n,使用 for 循环计算 1 到 n 的累加和,并输出结果。
from pywebio3.input import input as pw_input
from pywebio3.output import put_text
def exercise1():
"""
该函数获取用户输入的正整数 n,使用 for 循环计算 1 到 n 的累加和并输出。
"""
# 获取用户输入的正整数 n
n = int(pw_input("请输入一个正整数:"))
sum_result = 0
for i in range(1, n + 1):
sum_result += i
put_text(f"1 到 {n} 的累加和为: {sum_result}")
if __name__ == "__main__":
exercise1()
代码解释:
- 使用
pw_input函数从pywebio3获取用户输入的正整数n,并转换为整数类型存储在变量n中。 - 初始化变量
sum_result为 0,用于存储累加和。 - 使用
for循环,range(1, n + 1)生成从 1 到n的整数序列,在每次循环中,将当前的数字i累加到sum_result中。 - 最后使用
put_text函数输出累加和的结果。
点评:
本题主要考查 for 循环的基本运用和累加器概念,通过实际的累加计算,帮助学生熟悉循环操作,同时结合 pywebio3 实现用户交互,提升学生在 Web 环境下的编程能力。
练习 2:打印九九乘法表
题目:
利用 pywebio3 编写一个程序,使用 for 循环打印出九九乘法表。
from pywebio3.output import put_text
def exercise2():
"""
该函数使用 for 循环打印九九乘法表。
"""
for i in range(1, 10):
for j in range(1, i + 1):
put_text(f"{j}×{i}={i * j} ", inline=True)
put_text('')
if __name__ == "__main__":
exercise2()
代码解释:
- 外层
for循环控制乘法表的行数,从 1 到 9。 - 内层
for循环控制每行乘法的列数,列数与当前行数相关,从 1 到当前行数i。 - 在每次内层循环中,使用
put_text函数输出乘法表达式,并使用\t进行制表符对齐,使乘法表的格式更加整齐。 - 内层循环结束后,使用
put_text('')换行,以便打印下一行乘法表。
点评:
本题重点考察嵌套 for 循环,通过打印九九乘法表,让学生掌握循环嵌套的逻辑,增强对复杂循环结构的理解和运用能力,同时在 pywebio3 中展示结果,熟悉 Web 界面的文本输出格式。
练习 3:判断素数
题目:
使用 pywebio3 编写一个程序,让用户输入一个大于 1 的整数,使用 for 循环判断该数字是否为素数,并输出结果。
from pywebio3.input import input as pw_input
from pywebio3.output import put_text
def exercise3():
"""
该函数获取用户输入的大于 1 的整数,使用 for 循环判断其是否为素数并输出结果。
"""
# 获取用户输入的数字,转换为整数类型
num = int(pw_input("请输入一个大于 1 的整数:"))
if num <= 1:
put_text("请输入大于 1 的整数。")
return
is_prime = True
for i in range(2, int(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__":
exercise3()
代码解释:
- 使用
pw_input函数获取用户输入的数字,并转换为整数存储在num变量中,同时检查输入是否大于 1,若不满足则输出提示信息并返回。 - 假设输入的数是素数,将
is_prime设为True。 - 使用
for循环从 2 到num的平方根加 1 的范围遍历,如果num能被其中任何一个数整除,说明不是素数,将is_prime设为False并退出循环。 - 根据
is_prime的值输出相应的结果,判断该数字是否为素数。
点评:
这道题综合运用了 for 循环和条件判断,通过判断素数问题,加深学生对循环和条件语句组合的理解,引入数学概念,结合 pywebio3 实现用户交互,将编程应用于实际数学问题求解。
练习 4:打印斐波那契数列前 n 项
题目:
利用 pywebio3 编写一个程序,让用户输入一个正整数 n,使用 for 循环打印出斐波那契数列的前 n 项。
斐波那契数列的特点是:从第三项开始,每一项都等于前两项之和,即:0, 1, 1, 2, 3, 5, 8, 13, 21, 34,...
from pywebio3.input import input as pw_input
from pywebio3.output import put_text
def exercise4():
"""
该函数获取用户输入的正整数 n,使用 for 循环打印斐波那契数列的前 n 项。
"""
# 获取用户输入的正整数 n
n = int(pw_input("请输入一个正整数:"))
if n <= 0:
put_text("请输入大于 0 的正整数。")
return
a, b = 0, 1
put_text(a)
if n > 1:
put_text(b)
for _ in range(2, n):
a, b = b, a + b
put_text(b)
if __name__ == "__main__":
exercise4()
代码解释:
- 使用
pw_input函数获取用户输入的正整数n,并检查其是否大于 0,若不满足则输出提示信息并返回。 - 初始化斐波那契数列的前两个数
a和b分别为 0 和 1,并先输出前两项(如果n大于 1)。 - 使用
for循环从第三项开始计算并输出斐波那契数列的后续项。在每次循环中,通过a, b = b, a + b更新a和b的值,使其符合斐波那契数列的规律,并使用put_text函数输出当前项b。
点评:
本题涉及 for 循环和变量迭代更新,通过打印斐波那契数列,让学生深入理解循环中变量变化规律和递推关系,结合 pywebio3 展示生成过程,提高编程逻辑与数学算法结合的掌握程度。
练习 5:列表元素反转
题目:
使用 pywebio3 编写一个程序,让用户输入一个列表,使用 for 循环将列表中的元素反转,并输出反转后的列表。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise5():
"""
该函数获取用户输入的列表,使用 for 循环将其元素反转并输出结果。
"""
# 使用 input_group 和 input 获取用户输入的列表
data = input_group("请输入一个列表(元素之间用逗号分隔)", [
input(name='list_str',)
])
input_list = data['list_str'].split(',')
reversed_list = []
for i in range(len(input_list) - 1, -1, -1):
reversed_list.append(input_list[i])
put_text(reversed_list)
if __name__ == "__main__":
exercise5()
代码解释:
- 使用
input_group和input函数从pywebio3获取用户输入的字符串形式的列表,通过split(',')方法将其转换为列表形式存储在input_list中。 - 初始化一个空列表
reversed_list,用于存储反转后的元素。 - 使用
for循环,通过range(len(input_list) - 1, -1, -1)生成从列表末尾到开头的索引序列,在每次循环中,将input_list中对应索引的元素添加到reversed_list中,从而实现列表元素的反转。 - 最后使用
put_text函数输出反转后的列表。
点评:
本题主要考察 for 循环在列表操作中的应用,通过实现列表反转,让学生熟练掌握列表基本操作和 for 循环的灵活运用,结合 pywebio3 进行输入输出,增强处理列表数据和用户交互的能力。
练习 6:打印特定范围内的奇数
题目:
使用 pywebio3 编写一个程序,让用户输入两个正整数 start 和 end,使用 for 循环打印出从 start 到 end 之间的所有奇数,并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise6():
"""
该函数获取用户输入的两个正整数 start 和 end,使用 for 循环打印出它们之间的奇数。
"""
# 获取用户输入的两个正整数
data = input_group("请输入起始数和结束数(均为正整数)", [
input(name='start', type='number'),
input(name='end', type='number')
])
start = data['start']
end = data['end']
odd_numbers = []
for i in range(start, end + 1):
if i % 2!= 0:
odd_numbers.append(i)
put_text(f"从 {start} 到 {end} 之间的奇数为: {odd_numbers}")
if __name__ == "__main__":
exercise6()
代码解释:
- 使用
input_group和input函数从pywebio3中获取用户输入的两个正整数start和end,并使用validate参数确保输入为正整数。 - 初始化一个空列表
odd_numbers,用于存储奇数。 - 使用
for循环遍历从start到end的范围。 - 通过
if i % 2!= 0判断当前数字是否为奇数,如果是奇数则添加到odd_numbers列表中。 - 最后使用
put_text函数输出从start到end之间的奇数列表。
点评:
本题主要考查 for 循环和条件判断的简单应用,让学生掌握如何在一个数字范围内筛选出满足特定条件(奇数)的元素,同时通过 pywebio3 实现用户输入和结果输出,巩固学生在 Web 环境下的编程基础。
练习 7:统计字符串中元音字母的数量
题目:
使用 pywebio3 编写一个程序,让用户输入一个字符串,使用 for 循环统计该字符串中元音字母('a', 'e', 'i', 'o', 'u')的数量,并输出结果。
from pywebio3.input import input as pw_input
from pywebio3.output import put_text
def exercise7():
"""
该函数获取用户输入的字符串,使用 for 循环统计其中元音字母的数量并输出结果。
"""
# 获取用户输入的字符串
string = pw_input("请输入一个字符串:")
vowel_count = 0
vowels = 'aeiouAEIOU'
for char in string:
if char in vowels:
vowel_count += 1
put_text(f"该字符串中元音字母的数量为: {vowel_count}")
if __name__ == "__main__":
exercise7()
代码解释:
- 使用
pw_input函数从pywebio3获取用户输入的字符串,并存储在string变量中。 - 初始化
vowel_count为 0,用于统计元音字母的数量。 - 定义包含大小写元音字母的字符串
vowels。 - 使用
for循环遍历输入的字符串,对于每个字符,使用if char in vowels判断是否为元音字母,如果是则将vowel_count加 1。 - 最后使用
put_text函数输出元音字母的数量。
点评:
本题侧重于字符串的遍历和字符判断,让学生熟悉在 for 循环中对字符串的操作,通过简单的条件判断筛选出元音字母,同时利用 pywebio3 进行用户输入和结果展示,加强学生对字符处理和循环的结合运用能力。
练习 8:计算列表元素的平方和
题目:
使用 pywebio3 编写一个程序,让用户输入一个列表(元素为数字),使用 for 循环计算列表中元素的平方和,并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise8():
"""
该函数获取用户输入的数字列表,使用 for 循环计算元素的平方和并输出结果。
"""
# 获取用户输入的列表
data = input_group("请输入一个数字列表(元素之间用逗号分隔)", [
input(name='list_str',)
])
num_list = [float(num) for num in data['list_str'].split(',')]
square_sum = 0
for num in num_list:
square_sum += num ** 2
put_text(f"列表元素的平方和为: {square_sum}")
if __name__ == "__main__":
exercise8()
代码解释:
- 使用
input_group和input函数从pywebio3获取用户输入的字符串形式的列表,通过列表推导式将其转换为数字列表存储在num_list中。 - 初始化
square_sum为 0,用于存储平方和。 - 使用
for循环遍历num_list中的每个元素,将元素的平方累加到square_sum中。 - 最后使用
put_text函数输出列表元素的平方和。
点评:
本题考查了列表操作和循环中的计算,让学生掌握如何在 for 循环中对列表元素进行数学运算,同时使用 pywebio3 进行输入和输出,巩固学生对列表处理和计算的编程能力。
练习 9:检查列表中是否存在重复元素
题目:
使用 pywebio3 编写一个程序,让用户输入一个列表,使用 for 循环检查列表中是否存在重复元素,并输出检查结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise9():
"""
该函数获取用户输入的列表,使用 for 循环检查是否存在重复元素并输出结果。
"""
# 获取用户输入的列表
data = input_group("请输入一个列表(元素之间用逗号分隔)", [
input(name='list_str',)
])
input_list = data['list_str'].split(',')
has_duplicate = False
for i in range(len(input_list)):
for j in range(i + 1, len(input_list)):
if input_list[i] == input_list[j]:
has_duplicate = True
break
if has_duplicate:
break
put_text(f"列表 {'中存在' if has_duplicate else '中不存在'} 重复元素。")
if __name__ == "__main__":
exercise9()
代码解释:
- 使用
input_group和input函数从pywebio3获取用户输入的字符串形式的列表,通过split(',')方法将其转换为列表存储在input_list中。 - 初始化
has_duplicate为False,用于标记是否存在重复元素。 - 使用两层嵌套的
for循环比较列表中的元素,如果存在相同元素,将has_duplicate设为True并退出循环。 - 最后使用
put_text函数输出列表是否存在重复元素的结果。
点评:
本题涉及到列表元素的比较和循环嵌套,让学生学会在 for 循环中进行元素比较,通过简单的逻辑判断来检查重复元素,同时结合 pywebio3 进行用户输入和结果展示,提高学生在 Web 环境下解决列表元素检查问题的能力。
练习 10:按指定格式打印列表元素
题目:
使用 pywebio3 编写一个程序,让用户输入一个列表,使用 for 循环将列表元素按照 元素索引:元素值 的格式打印出来,并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise10():
"""
该函数获取用户输入的列表,使用 for 循环按指定格式打印元素并输出结果。
"""
# 获取用户输入的列表
data = input_group("请输入一个列表(元素之间用逗号分隔)", [
input(name='list_str',)
])
input_list = data['list_str'].split(',')
for i, element in enumerate(input_list):
put_text(f"{i}:{element}")
if __name__ == "__main__":
exercise10()
代码解释:
- 使用
input_group和input函数从pywebio3获取用户输入的字符串形式的列表,通过split(',')方法将其转换为列表存储在input_list中。 - 使用
for循环和enumerate函数遍历input_list,enumerate函数会同时返回元素的索引i和元素值element。 - 在循环中,使用
put_text函数按照元素索引:元素值的格式输出每个元素。
点评:
本题主要考察 for 循环与 enumerate 函数的结合使用,让学生学会如何在循环中同时获取元素索引和元素值,方便对列表元素进行带索引的操作,同时利用 pywebio3 实现列表元素的格式化输出,巩固学生在 Web 编程环境下的基础操作能力。
课后练习
练习一:计算平均值
题目:
使用 pywebio3 编写一个程序,让用户输入一组数字(以逗号分隔),使用 for 循环计算这些数字的平均值,并输出结果。
from pywebio3.input import input as pw_input
from pywebio3.output import put_text
def exercise1():
"""
该函数使用 pywebio3 获取用户输入的一组数字,用 for 循环计算平均值并输出。
"""
# 获取用户输入的一组数字
nums_str = pw_input("请输入一组数字,以逗号分隔:")
nums = [float(num) for num in nums_str.split(',')]
total = 0
count = 0
for num in nums:
total += num
count += 1
if count == 0:
put_text("输入为空,请输入有效的数字列表。")
else:
average = total / count
put_text(f"这组数字的平均值是: {average}")
if __name__ == "__main__":
exercise1()
代码解释:
- 使用
pw_input函数从pywebio3获取用户输入的以逗号分隔的数字字符串。 - 使用列表推导式将字符串拆分为数字列表
nums。 - 初始化
total为 0 用于存储数字总和,count为 0 用于计数数字的个数。 - 使用
for循环遍历nums列表,将数字累加到total中,并将count加 1。 - 若
count不为 0,则计算平均值并输出;若count为 0,输出提示信息。
点评:
本题重点考查 for 循环的基本使用,以及对列表元素的求和和计数操作,同时结合 pywebio3 进行用户输入和结果输出,让学生在实践中巩固基础的列表处理和数学运算能力。
练习二:找出最大公约数
题目:
使用 pywebio3 编写一个程序,让用户输入两个正整数,使用 for 循环找出这两个数的最大公约数(GCD),并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise2():
"""
该函数使用 pywebio3 获取用户输入的两个正整数,用 for 循环求最大公约数并输出。
"""
# 获取用户输入的两个正整数
data = input_group("请输入两个正整数", [
input(name='num1', type='number'),
input(name='num2', type='number')
])
num1 = data['num1']
num2 = data['num2']
gcd = 1
for i in range(1, min(num1, num2) + 1):
if num1 % i == 0 and num2 % i == 0:
gcd = i
put_text(f"{num1} 和 {num2} 的最大公约数是: {gcd}")
if __name__ == "__main__":
exercise2()
代码解释:
- 通过
input_group和input函数从pywebio3获取用户输入的两个正整数,并进行正整数验证。 - 初始化
gcd为 1。 - 使用
for循环从 1 到两个数中较小的数进行遍历。 - 若该数同时是两个输入数的约数,则更新
gcd的值。 - 最后使用
put_text函数输出最大公约数。
点评:
本题涉及 for 循环和条件判断,旨在让学生掌握寻找最大公约数的简单算法,通过 pywebio3 实现用户输入和结果展示,提高学生解决基本数学问题的编程能力。
练习三:输出元素的倍数
题目:
使用 pywebio3 编写一个程序,让用户输入一个正整数 n 和一个列表(元素为数字),使用 for 循环输出列表中所有是 n 的倍数的元素,并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise3():
"""
该函数使用 pywebio3 获取用户输入的 n 和列表,输出列表中 n 的倍数元素。
"""
# 获取用户输入的 n 和列表
data = input_group("请输入一个正整数 n 和一个数字列表(元素之间用逗号分隔)", [
input(name='n', type='number'),
input(name='list_str',)
])
n = data['n']
num_list = [float(num) for num in data['list_str'].split(',')]
multiples = []
for num in num_list:
if num % n == 0:
multiples.append(num)
put_text(f"列表中是 {n} 的倍数的元素有: {multiples}")
if __name__ == "__main__":
exercise3()
代码解释:
- 使用
input_group函数从pywebio3获取用户输入的正整数n和数字列表。 - 将输入的数字列表转换为浮点数列表
num_list。 - 初始化一个空列表
multiples用于存储倍数元素。 - 使用
for循环遍历num_list,将n的倍数添加到multiples列表中。 - 最后使用
put_text函数输出倍数元素列表。
点评:
本题考查了 for 循环的筛选功能,学生需要根据条件判断筛选出满足倍数条件的元素,同时结合 pywebio3 实现用户交互和结果展示,巩固列表处理和条件判断的能力。
练习四:字符串元素拼接
题目:
使用 pywebio3 编写一个程序,让用户输入一个字符串列表,使用 for 循环将列表中的字符串元素拼接成一个新的字符串,元素之间用空格分隔,并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise4():
"""
该函数使用 pywebio3 获取用户输入的字符串列表,用 for 循环拼接成一个新字符串。
"""
# 获取用户输入的字符串列表
data = input_group("请输入一个字符串列表(元素之间用逗号分隔)", [
input(name='list_str',)
])
str_list = data['list_str'].split(',')
result = ""
for i in range(len(str_list)):
result += str_list[i]
if i < len(str_list) - 1:
result += " "
put_text(f"拼接后的字符串为: {result}")
if __name__ == "__main__":
exercise4()
代码解释:
- 使用
input_group和input函数从pywebio3获取用户输入的字符串列表。 - 初始化一个空字符串
result用于存储拼接结果。 - 使用
for循环遍历列表,将元素添加到result中,若不是最后一个元素,添加一个空格。 - 最后使用
put_text函数输出拼接后的字符串。
点评:
本题重点在于字符串的拼接操作,通过 for 循环遍历列表,将元素按要求拼接,同时利用 pywebio3 进行输入和输出,帮助学生掌握字符串操作和循环结合的基本技能。
练习五:找出列表中的最大值和最小值
题目:
使用 pywebio3 编写一个程序,让用户输入一个数字列表(元素之间用逗号分隔),使用 for 循环找出列表中的最大值和最小值,并输出结果。
from pywebio3.input import input_group, input
from pywebio3.output import put_text
def exercise5():
"""
该函数使用 pywebio3 获取用户输入的数字列表,用 for 循环找出最大值和最小值。
"""
# 获取用户输入的数字列表
data = input_group("请输入一个数字列表(元素之间用逗号分隔)", [
input(name='list_str',)
])
num_list = [float(num) for num in data['list_str'].split(',')]
if not num_list:
put_text("输入为空,请输入有效的数字列表。")
return
max_num = num_list[0]
min_num = num_list[0]
for num in num_list:
if num > max_num:
max_num = num
if num < min_num:
min_num = num
put_text(f"列表中的最大值是: {max_num},最小值是: {min_num}")
if __name__ == "__main__":
exercise5()
代码解释:
- 使用
input_group和input函数从pywebio3获取用户输入的数字列表,并转换为浮点数列表。 - 若列表为空,输出提示信息并返回。
- 初始化
max_num和min_num为列表的第一个元素。 - 使用
for循环遍历列表,更新最大值和最小值。 - 最后使用
put_text函数输出最大值和最小值。
点评:
本题考查了 for 循环中的比较操作,让学生学会在循环中找出列表元素的最值,同时结合 pywebio3 实现用户输入和结果输出,增强学生对列表处理和比较运算的能力。
总结
本节课我们主要聚焦于循环语句的概念与用法展开了深入学习,同时为了让大家更好地掌握这一重要知识点,我们精心安排并完成了大量的练习题。希望同学们能够在完成这些练习题的过程中,亲身体验并深刻体会循环语句的奇妙之处,将其灵活运用到各种实际的编程场景中,真正掌握循环语句的精髓和用法,为今后的编程学习和实践打下坚实的基础哦 让我们一起在循环语句的世界里探索编程的乐趣,提升自己的编程技能,逐步成长为更出色的程序员吧
宝子们,我在 Python 的世界里摸爬滚打十余载,积累了不少心得体会。如今想把这些年的经验和知识毫无保留地分享给有缘的小伙伴。要是你对 Python 学习感兴趣,欢迎来试听一二,也可以随时在评论区留言或者私信我,咱们一起探讨,共同进步,开启 Python 学习的奇妙之旅!
人生苦短, 我用Python, 坚持每天学习, 坚持每天进步一点点...