Не понимаю, почему этот AttributeError происходит в цикле for - PullRequest
0 голосов
/ 12 января 2019

Мне нужна помощь для небольшой викторины, которую я пишу для школьного проекта. Предполагается иметь 3 вопроса с несколькими вариантами ответов. Он написан на ООП Python 3. Я впервые работаю с классами Python.

Вот код:

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

q_dict = [
    """Q1 Why is it important to scan your target network slowly?\n
    A. To avoid alerting the IDS
    B. It is not necessary to scan the network slowly."""'\n\n\n',

    """Q2 What is the difference between a traditional firewall and an IPS?
    A. Firewalls do not generate logs.
    D. IPS can dissect packets"""'\n\n\n',

    """Q3 What tool is able to conduct a man-in-the-Middle Attack on an 802.3 environment?
    A. Ettercap
    B. Cain & Abel"""'\n\n\n'
]

a_dict = [
    Questions(q_dict[0], "A"),
    Questions(q_dict[1], "D"),
    Questions(q_dict[2], "B")
]

def start(a_dict):
    points = 0
    for question in a_dict:
        answer = input(q_dict.question)
        if answer == a_dict.answer:
            points += 10
    print("You got 10 points")
    print("Total points: %s" % points)

start(a_dict)

Моя программа выдает ошибку, когда я пытаюсь ее запустить:

Traceback (most recent call last):
  File "./test.py", line 36, in <module>
    start(a_dict)
  File "./test.py", line 30, in start
    answer = input(a_dict.question)
AttributeError: 'list' object has no attribute 'question'

Я хочу, чтобы он распечатал список и попросил пользователя ввести свой выбор, и если ответ совпадает с тем, который я установил как правильный ответ, чтобы дать пользователю 10 баллов, а затем отобразить общее количество баллов.

1 Ответ

0 голосов
/ 12 января 2019

Вы перебираете свой список, содержащий объекты Вопроса. Поэтому вам нужно написать:

for question in a_dict:
    answer = input(question.question)
    if answer == question.answer:
        points += 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...