Discuss / Python / 交作业,因为用的编辑器,所以全文粘贴

交作业,因为用的编辑器,所以全文粘贴

Topic source

桂兴牛2号

#1 Created at ... [Delete] [Delete and Lock User]

-- coding: utf-8 --

import os, sqlite3

db_file = os.path.join(os.path.dirname(file), 'test.db')

#程序多次运行,每次运行前将已经存在的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): try: con=sqlite3.connect(db_file) cursor=con.cursor() list=[]

    #从小到大取值
    for i in range(low,high+1):
        cursor.execute('select * from user where score=? ',(i,))
        x=cursor.fetchall()
        #这里不能用None,因为【】是空数组,不是None
        if x !=[]:
            print(x)
            #这里一定是x【0】【1】,而不是x【1】,二维数组
            list.append(x[0][1])
    results=list
    print(results)
finally:
    cursor.close()
    con.close()
return results

测试:

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')


  • 1

Reply