# -*- coding: utf-8 -*- import os, sqlite3 db_file = os.path.join(os.path.dirname(__file__), '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() try: cursor.execute('select name from user where score between ? and ? order by score asc', (low, high)) values = cursor.fetchall() except: raise finally: cursor.close() #conn.commit() conn.close() return [v[0] for v in values] try: assert get_score_in(80, 95) == ['Adam'], get_score_in(80, 95) except AssertionError: print('result is not right: get_score_in(80, 95) is not equal to ["Adam"]') raise finally: print('get_score_in(80, 95) = ' + str(get_score_in(80, 95))) try: assert get_score_in(60, 80) == ['Bart', 'Lisa'], get_score_in(60, 80) except AssertionError: print('result is not right: get_score_in(60, 80) is not equal to ["Bart", "Lisa"]') raise finally: print('get_score_in(60, 80) = ' + str(get_score_in(60, 80))) try: assert get_score_in(60, 100) == ['Bart', 'Lisa', 'Adam'], get_score_in(60, 100) except AssertionError: print('result is not right: get_score_in(60, 100) is not equal to ["Bart", "Lisa", "Adam"]') raise finally: print('get_score_in(60, 100) = ' + str(get_score_in(60, 100)))
运行结果:
get_score_in(80, 95) = ['Adam'] get_score_in(60, 80) = ['Bart', 'Lisa'] get_score_in(60, 100) = ['Bart', 'Lisa', 'Adam']
Sign in to make a reply
________却
运行结果: