利用while循环和游标,统计并输出每门课程的平均成绩
时间: 2024-12-13 08:25:30 浏览: 19
如果你想要利用`while`循环和数据库游标来计算每门课程的平均成绩,通常在SQL环境中,你可以创建一个存储过程或者编写一段脚本,以下是使用Python和SQLite的一个例子(假设你有一个名为`scores`的表,包含`course_id`和`score`字段):
```python
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()
# 初始化课程和总分数计数器
course_scores = {}
total_scores = {}
# 使用while循环遍历每个课程ID
while True:
cursor.execute("SELECT DISTINCT course_id FROM scores")
course_id = cursor.fetchone()
if not course_id: # 如果没有更多的课程ID,退出循环
break
course_id, = course_id # 解包元组
total_score = 0
count = 0
# 遍历该课程的所有成绩
while True:
cursor.execute(f"SELECT score FROM scores WHERE course_id={course_id}")
score = cursor.fetchone()
if not score: # 没有更多成绩,结束内层循环
break
score, = score # 解包元组
total_score += score
count += 1
# 计算并存储平均成绩
average_score = total_score / count if count > 0 else "未选"
course_scores[course_id] = average_score
print(f"课程 {course_id} 的平均成绩是:{average_score}")
# 关闭连接
conn.close()
```
这段代码首先获取所有的课程ID,然后针对每个课程ID计算其所有成绩的平均值。
阅读全文