Python中使用input遍历循环输入第i个数的问题
在实际的编程过程中,我们常常需要处理用户输入。尤其是在需要接收一组数据时,我们怎么才能有效地管理这些输入,从而形成一个有序的数据结构?本文将通过示例展示如何在Python中使用input
函数遍历循环输入第i个数,并解决一个实际问题—计算学生的成绩平均分。
问题描述
假设我们有5名学生,我们希望录入他们的姓名和对应的成绩,然后计算平均成绩并输出相应的结果。这个过程不但考察了如何循环输入数据,还考査了数据的存储和处理。
解决方案
我们将使用一个for
循环结合input()
函数来获取用户输入。为了有序地存储学生的信息,我们会使用字典,其中学生姓名作为键,对应的成绩作为值。接下来,我们将计算成绩的平均值并输出结果。
代码示例
下面是一个实现该功能的示例代码:
# 初始化一个空字典来存储学生的姓名和成绩
students = {}
# 设定学生人数
num_students = 5
# 循环接收学生姓名和成绩
for i in range(num_students):
name = input(f"请输入第{i+1}个学生的姓名: ")
score = float(input(f"请输入{name}的成绩: "))
students[name] = score
# 计算平均成绩
average_score = sum(students.values()) / num_students
# 输出成绩信息
print("\n学生成绩信息如下:")
# 输出学生成绩表格
print("| 姓名 | 成绩 |")
print("| ---- | ---- |")
for name, score in students.items():
print(f"| {name} | {score} |")
print(f"\n所有学生的平均成绩为: {average_score:.2f}")
代码解析
-
初始化一个字典:我们创建了一个空字典
students
,用以存储学生的姓名和成绩。 -
循环输入:我们使用
for i in range(num_students)
来进行循环,通过input()
函数接收学生的姓名和成绩并存入字典中。 -
计算平均成绩:通过
sum(students.values()) / num_students
计算总成绩和平均成绩。 -
输出信息:最后以表格形式输出学生的成绩及平均分。
执行结果示例
执行上面的代码,假设用户输入如下:
请输入第1个学生的姓名: 张三
请输入张三的成绩: 85
请输入第2个学生的姓名: 李四
请输入李四的成绩: 78
请输入第3个学生的姓名: 王五
请输入王五的成绩: 92
请输入第4个学生的姓名: 赵六
请输入赵六的成绩: 88
请输入第5个学生的姓名: 刘七
请输入刘七的成绩: 75
输出结果如下:
学生成绩信息如下:
| 姓名 | 成绩 |
| ---- | ---- |
| 张三 | 85.0 |
| 李四 | 78.0 |
| 王五 | 92.0 |
| 赵六 | 88.0 |
| 刘七 | 75.0 |
所有学生的平均成绩为: 83.60
拓展思考
这种输入方式并不局限于学生的姓名和成绩,您可以根据需要调整代码以接受其他形式的数据。例如,您可以修改代码让用户输入学生的地址、年龄等相关信息。利用字典的特性,您还可以扩展成更复杂的数据结构,比如将每个学生的成绩扩展为列表,以便记录多次成绩。
# 示例扩展:记录多次成绩
from collections import defaultdict
# 初始化默认字典
students = defaultdict(list)
# 假设每个学生记录多次成绩
for i in range(num_students):
name = input(f"请输入第{i+1}个学生的姓名: ")
for j in range(3): # 进入循环记录3次成绩
score = float(input(f"请输入{name}的第{j+1}次成绩: "))
students[name].append(score)
该扩展可以帮助我们记录下同一个学生不同时间点的成绩,提供更丰富的数据分析功能。
结尾
本文展示了如何通过input
函数和循环,遍历接收学生成绩这一问题,并通过字典来高效管理输入数据。通过简单的示例,我们不仅实现了成绩的记录与输出,还计算了平均成绩。这样的处理方式在日常的编程中是非常实用的,可以根据我们的需求灵活应用。不论是简单的数据收集,还是复杂的应用场景,掌握数据输入处理的核心思想都是十分重要的。希望这篇文章能够帮助读者更好地理解Python的输入处理机制,并能在实际项目中运用自如。