使用SQLite
使用SQLite
在Sqlite中根据分数段查找指定的名字:
#还了解了
1、__file__ 默认变量会返回当前文件的文件路径(绝对路径)
2、for 列表推导式
3、assert用法
1 # -*- coding: utf-8 -*- 2 ''' 3 use SQLite3 4 返回指定分数区间的名单,按分数从低到高排序 5 6 ''' 7 import os, sqlite3 8 # print("__file__ = "+__file__) 9 db_file = os.path.join(os.path.dirname(__file__), 'test.db') 10 if os.path.isfile(db_file): 11 os.remove(db_file) 12 13 # 初始数据: 14 conn = sqlite3.connect(db_file) 15 cursor = conn.cursor() 16 cursor.execute('create table user(id varchar(20) primary key, name varchar(20), score int)') 17 cursor.execute(r"insert into user values ('A-001', 'Adam', 95)") 18 cursor.execute(r"insert into user values ('A-002', 'Bart', 62)") 19 cursor.execute(r"insert into user values ('A-003', 'Lisa', 78)") 20 cursor.close() 21 conn.commit() 22 conn.close() 23 24 def get_score_in(low, high): 25 ' 返回指定分数区间的名字,按分数从低到高排序 ' 26 conn = sqlite3.connect(db_file) 27 cursor = conn.cursor() 28 cursor.execute("select name from user where score between ? and ? order by score",(low,high)) 29 values = cursor.fetchall() 30 #返回的数据如下:[('Bart',), ('Lisa',), ('Adam',)] 31 #使用列表推导式,生成一个新的列表,并返回 32 #分开写可以写成 x = [ a[0] for a in values ] ; return x 33 cursor.close() 34 conn.close() 35 return [ a[0] for a in values ] 36 # 测试: 37 #assert 两边相等,如果 不相等,则抛出异常,异常为 , 后面内容,在这里则是执行方法,并展示 方法返回的内容 38 assert get_score_in(80, 95) == ['Adam'], get_score_in(80, 95) 39 assert get_score_in(60, 80) == ['Bart', 'Lisa'], get_score_in(60, 80) 40 assert get_score_in(60, 100) == ['Bart', 'Lisa', 'Adam'], get_score_in(60, 100) 41 42 print('Pass')
浙公网安备 33010602011771号