首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CS50 - PSet7房屋提交中的问题

CS50 - PSet7房屋提交中的问题
EN

Stack Overflow用户
提问于 2020-04-29 19:22:17
回答 1查看 4.4K关注 0票数 0

我已经为房屋编写了代码,包括import.py和roster.py,当我亲自测试它们时,它们都在工作,并且都输出了规范所期望的输出。我遇到麻烦的地方是当我提交它的时候,即使我的代码在我的端工作,它总是在check50上告诉我(当我提交它时),import.py根本不会产生任何输出。我已经附上了支票50的结果,以显示它的意思。

谢谢

check50结果

IMPORT.PY

代码语言:javascript
复制
import csv
import sys
from cs50 import SQL

if len(sys.argv) != 2:
    print("Usage: python import.py characters.csv")
    sys.exit(1)

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

with open(sys.argv[1], "r") as characters:

    reader = csv.DictReader(characters, delimiter=",")

    for row in reader:

        name = row["name"]
        name_list = name.split()

        if len(name_list) == 2:
            first_name = name_list[0]
            last_name = name_list[1]
            db.execute("INSERT INTO students (first, middle, last, house, birth) VALUES(?, ?, ?, ?, ?)",
                       first_name, None, last_name, row["house"], row["birth"])
        elif len(name_list) == 3:
            first_name = name_list[0]
            middle_name = name_list[1]
            last_name = name_list[2]
            db.execute("INSERT INTO students (first, middle, last, house, birth) VALUES(?, ?, ?, ?, ?)",
                       first_name, middle_name, last_name, row["house"], row["birth"])

ROSTER.PY

代码语言:javascript
复制
import csv
import sys
from cs50 import SQL

if len(sys.argv) != 2:
    if sys.argv[1] != "Gryffindor" or sys.argv[1] != "Slytherin" or sys.argv[1] != "Hufflepuff" or sys.argv[1] != "Ravenclaw":
        print("Usage: python roster.py house")

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

house_list = db.execute("SELECT first, middle, last, birth FROM students WHERE house = (?) ORDER BY last, first", sys.argv[1])

for row in house_list:
    if row["middle"] == None:
        print(row["first"] + " " + row["last"] + ", born " + str(row["birth"]))
    else:
        print(row["first"] + " " + row["middle"] + " " + row["last"] + ", born " + str(row["birth"]))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-30 13:27:15

很抱歉错过了第一轮的问题。当check50运行时,students.db中已经有一个students表,因此CREATE语句失败。也许它太迂腐了,但是规范中没有创建表的指令。和本课程中的所有pset一样,我们应该做并且只做规范所规定的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61509984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档