Python实现函数,在Sqlite中根据分数段查找指定的名字

首先在本地建立一个 test.db 的文件。

然后接下来用下面的代码进行测试,读取数据。


解题分析:

    代码块的功能是利用sqlit3链接数据库,并且创建用户表。
插入数据,进行查询,然后再利用输入的数字大小的区间,
返回出符合区间之间的姓名、

代码:
#-*- coding:utf-8 -*-
'''
代码块的功能是利用sqlit3链接数据库,并且创建用户表。
插入数据,进行查询,然后再利用输入的数字大小的区间,
返回出符合区间之间的姓名、
'''
import os, sqlite3
db_file = os.path.join(os.path.dirname('__file__'), 'E:/codes/python/test.db')
if os.path.isfile(db_file):
    os.remove((db_file))

conn = sqlite3.connect(db_file)
cursor = conn.cursor()
cursor.execute("create table user(id varchar(20) primary key, name varchar(20), score int)")
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)")
cursor.close()
conn.commit()
conn.close()
def get_score_in(low, high):
    conn =sqlite3.connect(db_file)
    cursor = conn.cursor()
    cursor.execute('select name from user where score between ? and ? order by score ASC', (low, high))
    records = cursor.fetchall()
    cursor.close()
    conn.close()
    names = [x[0] for x in records]
    return names

#debug代码:
print ('接下来为调试部分\n')
print ('调试开始-----------》\n')
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 ('调试结束-----------》\n')


res1 = get_score_in(60, 100)
res2 = get_score_in(60, 70)
res3 = get_score_in(70, 80)

print (res1)
print (res2)
print (res3)




Python实现函数,在Sqlite中根据分数段查找指定的名字_第1张图片

你可能感兴趣的:(Python实现函数,在Sqlite中根据分数段查找指定的名字)