cs50 pset7安置花名册

时间:2020-08-20 03:32:15

标签: python sql cs50

pset7中的roster.py函数可以正常工作,除了它返回4或5个名称和出生年份的副本而不是一个副本。通过调试,您可以看到问题出在结果变量上。它存储所有复制粘贴的名称,而不是一个名称。

这里是我的代码:

import sys
from cs50 import SQL

if len(sys.argv) != 2:
    print("Needs two command-line argument")
    exit(1)

db = SQL("sqlite:///students.db")

house = sys.argv[1]

results = db.execute("SELECT * FROM students WHERE house = ? ORDER BY last ASC, first ASC", house)


for row in results:
    if row["middle"] != None:
        print(f'{row["first"]} {row["middle"]} {row["last"]}, born {row["birth"]}')
    else:
        print(f'{row["first"]} {row["last"]}, born {row["birth"]}')

1 个答案:

答案 0 :(得分:1)

进入您的students.db, 进入学生桌, 清空你的桌子, 然后运行“运行以下命令”,并确保运行一次import.py

$ python import.py characters.csv
$ python roster.py Gryffindor

如果您多次运行import.py,则副本将更多,并且需要清空表