Python sqlite3练习:请编写get_score_in函数,在Sqlite中根据分数段查找指定的名字

本文介绍了一个使用Python和SQLite数据库实现的功能,即根据指定的分数范围查询并返回名字列表,且按分数从低到高排序。文章提供了完整的代码示例,包括数据库连接、表创建、数据插入及查询等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:爱编程的小金毛球球
日期:2020年9月22日

Python sqlite3练习:

编写get_score_in函数,在Sqlite中根据分数段查找指定的名字(按分数从低到高排序)
难点:
  1. SQLite数据库的相关操作
  2. 获取的结果集转换成对应测试格式
# -*- coding: utf-8 -*-

import os,sqlite3

db_file = os.path.join(os.path.dirname(__file__), "test.db")
# 要搞清楚三条路径
print(os.path)
print(os.path.dirname(__file__))
print(db_file)

# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
conn = sqlite3.connect(db_file)
# 创建一个Cursor:
cursor = conn.cursor()

# 创建user表
cursor.execute("create table user (id varchar(20) primary key , name varchar (20), score int)")
# 插入部分数据,r表示不需要转译
cursor.execute(r"insert into user values ('A-001', 'Adam', 95)")
cursor.execute(r"insert into user values ('A-002', 'Bart', 62)")
cursor.execute(r"insert into user values ('A-003', 'Lisa', 78)")
# 通过rowcount获得插入的行数:
print(cursor.rowcount)
# 关闭Cursor:
cursor.close()
# 提交事务
conn.commit()
# 关闭Connection
conn.close()



def get_score_in(low, high):
    # ' 返回指定分数区间的名字,按分数从低到高排序 '
    conn = sqlite3.connect(db_file)
    cursor = conn.cursor()
    # 获取的结果集可以有多种,这里只展示一种方式:
    cursor.execute("select name from user where score >=? and score <=? order by score", (low, high))
    # 获得查询结果集
    values = cursor.fetchall()
    # 结果集是一个list,每个元素都是一个tuple,对应一行记录
    print("输出结果集:", values)
    cursor.close()
    conn.close()

    # 转换成list:
    temp = []
    for v in values:
        temp.append(v[0])
	print("转换后的temp:",temp)
    return temp
# 测试:
assert get_score_in(80, 95) == ['Adam'], get_score_in(80, 95)
assert get_score_in(60, 80) == ['Bart', 'Lisa'], get_score_in(60, 80)
assert get_score_in(60, 100) == ['Bart', 'Lisa', 'Adam'], get_score_in(60, 100)

print('Pass')



输出结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值