如何将排行榜创建为数据库

How to create a leaderboard as a database

我需要创建一个排名前 5 的数据库,但是,我尝试的方法没有用 - 它引发了许多不同的错误(下面的代码):

import sqlite3

winner_name = input("Name: ")
winner_score = input("Score: ")

db = sqlite3.connect('C:\Users\user\Desktop\WORK\CS\NEA\Python')

c = db.cursor()

c.execute("""CREATE TABLE Leaderboard
(Place,text,
Name, text,
Score, text)
""")

c.execute("""INSERT INTO Leaderboard
             VALUES ("1",winner_name,winner_score)""")

db.commit()
c.execute('SELECT * FROM Leaderboard')
row = c.fetchone()
print(row)
db.close()

问题:

  1. 以“db =”开头的第 4 行在括号中出现错误。我最初认为这与我正在尝试制作数据库和程序混淆的事实有关,但是,我不确定。

  2. 在开始“VALUES”的一半左右的行上,我想从代码的开头将 winner_name 和 winner_score 作为变量,但我不确定如果我做对了或错了(它像语音一样突出显示为绿色而不是黑色)。

感谢您的帮助。

看看接下来的事情

  1. sqlite3.connect 应该接收数据库文件名,例如 example.db(不是您的文件夹)

  2. creating database 有一个 next syntax,在你的情况下 Placetext 之间不需要逗号: Place,next(错误)-> Place text(正确)

  3. 在插入 table 行时需要传递值(在您的情况下,您传递的是字符串):

c.execute(f"""INSERT INTO Leaderboard
             VALUES ("1","{winner_name}",{winner_score})""")

(注意为 winner_name 加上引号 ",因为数据库正在等待此值的文本 )