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}")

代码解析

  1. 初始化一个字典:我们创建了一个空字典students,用以存储学生的姓名和成绩。

  2. 循环输入:我们使用for i in range(num_students)来进行循环,通过input()函数接收学生的姓名和成绩并存入字典中。

  3. 计算平均成绩:通过sum(students.values()) / num_students计算总成绩和平均成绩。

  4. 输出信息:最后以表格形式输出学生的成绩及平均分。

执行结果示例

执行上面的代码,假设用户输入如下:

请输入第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的输入处理机制,并能在实际项目中运用自如。