测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A23214. 成绩数据库现有学生成绩数据库school.db,包含表结构:CREATE TABLE scores (id INT, name TEXT, math INT, class TEXT)请补全代码完成以下功能:1.修改指定班级学生的数学成绩2.统计各班数学成绩>120分的学生人数3.

填空题 困难

题目描述

成绩数据库

现有学生成绩数据库school.db,包含表结构:

CREATE TABLE scores (id INT, name TEXT, math INT, class TEXT)

请补全代码完成以下功能:

1.修改指定班级学生的数学成绩

2.统计各班数学成绩>120分的学生人数

3.输出格式化结果

(本题无需运行通过,写入代码即可)

import sqlite3
conn = sqlite3.connect('school.db')
cursor = conn.cursor()

# 任务1:修改成绩(示例:将1班张三数学成绩改为135)


update_sql = "UPDATE scores SET math = ? WHERE class = ? AND name = ?"

cursor.execute(update_sql, (135, '1班', '张三'))
________ ① _________             
# 任务2:统计各班数学120高分人数
cursor.execute("SELECT class FROM scores WHERE math > 120")
results =________②_________                
class_counts = {}
for row in results:
  class_name = row[0]
  if class_name in class_counts:
        _______③ ________         
  else:
      class_counts[class_name] = 1
# 任务3:格式化输出结果
print("各班数学高分统计:")
for class_name, count in  _______④_________:
  print(f"{class_name.ljust(6)}: {'★'*count}")
cursor.close()
________⑤ _______          

参考答案

import sqlite3 conn = sqlite3.connect('school.db') cursor = conn.cursor() # 任务1:修改成绩 update_sql = "UPDATE scores SET math = ? WHERE class = ? AND name = ?" cursor.execute(update_sql, (135, '1班', '张三')) conn.commit() # 任务2:统计各班数学120高分人数 cursor.execute("SELECT class FROM scores WHERE math > 120") results = cursor.fetchall() class_counts = {} for row in results: class_name = row[0] if class_name in class_counts: class_counts[class_name] += 1 else: class_counts[class_name] = 1 # 任务3:格式化输出结果 print("各班数学高分统计:") for class_name, count in class_counts.items(): print(f"{class_name.ljust(6)}: {'★'*count}") cursor.close() conn.close()

答案解析

评分标准:

(1)conn.commit() 或等效答案;(2分)

(2)cursor.fetchall() 或等效答案;(2分)

(3)class_counts[class_name] += 1 或等效答案;(2分)

(4)class_counts.items() 或等效答案; (2分)

(5)conn.close() 或等效答案。 (2分)

上一题 下一题