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"]}')
答案 0 :(得分:1)
进入您的students.db, 进入学生桌, 清空你的桌子, 然后运行“运行以下命令”,并确保运行一次import.py
$ python import.py characters.csv
$ python roster.py Gryffindor
如果您多次运行import.py,则副本将更多,并且需要清空表