我有一个程序,为学生运行数学测试,然后将他们的分数存储在一个数据库中,以后可以阅读该数据库对课程进行排序并阅读以前的学生分数。
首次将第一个分数插入数据库时,它可以正常工作,但是当插入第二个分数时,我可以看到[(6,), 6]
在数据库中。我不明白为什么一个是元组而另一个是整数(我对元组不是很熟悉)。为什么我(或我怎么能)不能拥有它,以便在从数据库中读取列表时返回[6,6]
。
代码是每个学生总共有3个分数。这是将分数写入数据库的函数。
def scoreText(name, classNo, score):
myFile = sqlite3.connect("scores.db")
c = myFile.cursor()
c.execute('SELECT score FROM scores WHERE name = (?) AND classNo = (?)', (name, classNo,))
scores = c.fetchall()
print(len(scores))
if len(scores) == 0:
print(scores)
c.execute('INSERT INTO scores(score, name, classNo) VALUES(?,?,?) ', (score, name, classNo,))
elif len(scores) == 3:
del scores[0]
scores.append(score)
#scores = ', '.join(map(str, scores))
print(scores)
c.execute('UPDATE scores SET score = (?) WHERE name = (?) AND classNo = (?)', (score, name, classNo,))
else:
scores.append(score)
print(scores)
c.execute('UPDATE scores SET score = (?) WHERE name = (?) AND classNo = (?)', (score, name, classNo,))
myFile.commit()
myFile.close()
scoreText("jason", 1, 6)