cs50 pset7房屋名册



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

这是我的代码:

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"]}')

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

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

如果你运行了不止一次import.py,那么会有更多的副本,你需要清空表

最新更新