【问题标题】:First time SQLite3 user python 3, syntax error in print第一次使用 SQLite3 用户 python 3,打印中的语法错误
【发布时间】:2012-11-29 12:30:52
【问题描述】:

我正在开发一个程序,该程序能够通过将问题导出到数据库来进行测验。我在网上看了一会儿,它说在 python 中导入或导出到数据库的最简单方法之一是使用 SQLite3 插件,所以我正在尝试。这是我第一次我在 python 中使用了 SQLite3 插件,但我在 self.connection.commit() 中不断收到语法错误:

def AddQuestion(self, Question, Answer1, Answer2, Answer3, Answer4):
    self.cursor.execute("""INSERT INTO questions
                            VALUES (?, ?, ?, ?, ?, ?)""", (None, Question, Answer1, Answer2, Answer3, Answer4, CorrectAnswer)
    self.connection.commit()

如果我通过在它前面添加 # 来将它变成注释,它会告诉我这里的打印是一个语法错误:

print ("Would you like to make a test? Or would you like to take a test?")

也许是我的缩进,还是我做错了什么?

import squlite3
class QuestionStorage(object):
    def _init_(self, path):
        self.connection = sqlite3.connect(path)
        self.cursor = self.connection.cursor ()

def Close(self):
    self.cursor.close()
    self.connection.close()

def CreateDb(self):
    query = """CREATE TABLE questions
             (id INTEGER PRIMARY KEY, Question TEXT, Answer1 TEXT, Answer2 TEXT, Answer3 TEXT, Answer4 TEXT, CorrectAnswer TEXT)"""
    self.cursor.exeute(query)
    self.connection.commit()
    #self.cursor.close()

def AddQuestion(self, Question, Answer1, Answer2, Answer3, Answer4):
    self.cursor.execute("""INSERT INTO questions
                            VALUES (?, ?, ?, ?, ?, ?)""", (None, Question, Answer1, Answer2, Answer3, Answer4, CorrectAnswer)
    self.connection.commit()

def GetQuestion(self, index = None):
    self.cursor.execute("""SELECT * FROM questions WEHRE id=?""", (index,))



print ("Would you like to make a test? Or would you like to take a test?")
testTaker = input ("To create a test, type Create. To take a test, type Take.")

if testTaker == "Create":
    testName = input ("Give your test a name.")
    testQ = int(input ("How many questions will be on this test? (Numeric value only.)"))
    testType = input ("Will this test be multiple choice? (y/n)")
    if testType == "N" or "n":
        counter = 1
        qs = QuestionStorage("questions.db")
        qs.CreateDb()
        counter = 1
        while counter >= testQ:
            Answer = []
            Question = input ("What is your question?")
            Answer[1] = input ("What is the first answer?")
            Answer[2] = input ("What is the second answer?")
            Answer[3] = input ("What is the third answer?")
            Answer[4] = input ("What is your last answer?")
            correctAnswer = input("Which answer is the correct answer? (1, 2, 3, or 4?)")
            Answer[5] = Answer[correctAnswer]

        qs.AddQuestion(Question, Answer[1] , Answer[2], Answer[3], Answer[4], Answer[5])
        counter +=1


else:

然后在else之后,我将有读取数据库的代码进行测试。

如果有人能帮我解决这个问题,那就太好了。现在我只是想把它弄到可以在调试中运行它的地步。

【问题讨论】:

    标签: sqlite syntax python-3.x


    【解决方案1】:

    您忘记在此处关闭括号:

    self.cursor.execute("""INSERT INTO questions
                            VALUES (?, ?, ?, ?, ?, ?)""", (None, Question, Answer1, Answer2, Answer3, Answer4, CorrectAnswer)
    

    在行尾添加另一个结束 )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      相关资源
      最近更新 更多