Discuss / Python / 打卡十三天

打卡十三天

Topic source

皆由唧唧

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

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):
    con = sqlite3.connect(db_file)
    cur = con.cursor()
    cur.execute('select name,score from user where score >= ? and score <= ?',(low,high))
    values = cur.fetchall()
    cur.close()
    con.close()
    x=sorted(values,key=lambda x:x[1])
    y=list(map(lambda x:x[0],x))
    return y

# 测试:
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