首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性错误:'list‘对象没有'string’属性

属性错误:'list‘对象没有'string’属性
EN

Stack Overflow用户
提问于 2020-08-24 09:22:09
回答 2查看 64关注 0票数 1

这是我的类所在的文件

代码语言:javascript
复制
#8/23/2020
#Class file

class Questions:
    def __init__(self, prompt, answer):
        self.prompt = prompt
        self.answer = answer

这是与属性错误一起运行的正文

代码语言:javascript
复制
#8/23/20
#Multiple Choice quiz
import random
from question_class import Questions
#These are my variables that I will use in the question_prompts array
number3 = random.randint(1,100)
number4 = random.randint(1,100)
number5 = random.randint(1,10)
number6 = random.randint(1,10)
number7 = random.randint(50,100)
number8 = random.randint(12,50)

answer3 = int(number3) + int(number4)
answer4 = int(number5) * int(number6)
answer5 = int(number7) - int(number8)



question_prompts = [  #This is my array for the question prompts
    "Question 1:\nIn the directions NWSE what does E stand for?\n(a)Eagle\n(b)Eric\n(c)East\n(d)Enter\n",
    "Question 2:\n(T/F) Tomatoes are fruits\n(T)\n(F)",
    "Question 3:\nWhat is " + str(number3) + " + " + str(number4) + "?\n",
    "Question 4:\nWhat is " + str(number5) + " x " + str(number6) + "?\n",
    "Question 5:\nWhat is " + str(number7) + " - " + str(number8) + "?\n"
]

questions = [ #This is my array for my question class prompts and answers
    Questions(question_prompts[0],"c"),
    Questions(question_prompts[1],"f"),
    Questions(question_prompts[2],str(answer3)),
    Questions(question_prompts[3],str(answer4)),
    Questions(question_prompts[4],str(answer5)),
]

def run_test(questions): #This is my function to run the quiz
    score = 0
    for question in questions:
        answer = input(questions.answer)
        if answer == questions.answer:
            score += 1
    print("You scored " + str(score) + "/" + len(questions.prompts))
run_test(questions)

我是新手编码,这个项目是一个多项选择测验项目。我遵循了Mike Dane的教程,并试图使其动态化,但出现了错误。请使用初学者友好的语言

EN

回答 2

Stack Overflow用户

发布于 2020-08-24 09:30:34

首先,answer == questions.answer是错误的,因为questions (带有s)是一个问题列表,而不是一个问题。它应该是answer == question.answer (不带s)。

其次,当问题只是给出答案而不是真正问你问题时,我不确定这个测验会有多难:

代码语言:javascript
复制
answer = input(questions.answer)

我认为您可能希望传入question.prompt :-)

票数 0
EN

Stack Overflow用户

发布于 2020-08-24 09:32:07

run_test中有一些问题。下面的代码应该可以修复它们:

代码语言:javascript
复制
def run_test(questions): #This is my function to run the quiz
    score = 0
    for question in questions:
        answer = input(question.prompt)
        if answer == question.answer:
            score += 1
    print("You scored " + str(score) + "/" + str(len(questions)))
run_test(questions)

更改:

  1. input(questions.answer) question.answer
  2. len(questions.prompts) -> input(question.prompt)注意这里有2处更改-> -> str(len(questions))注意这里有2处更改
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63553570

复制
相关文章

相似问题

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