#python #dictionary
#python #словарь
Вопрос:
Я пишу функцию, которая должна «перебирать» мой словарь. Содержимое словаря содержит 4 вопроса, которые я хочу задать своему пользователю, один за другим. Начиная с первого вопроса, я хочу задать все вопросы, которые у меня есть в моем словаре. Когда заданы все вопросы, я хочу, чтобы моя функция остановилась. Я пытался найти ответ, который я ищу, но, к сожалению, без каких-либо результатов.. Я также создал диаграмму, которая объясняет алгоритм, который я хочу написать. Смотрите ссылку ниже: https://i.stack.imgur.com/aNWUq.png
Код, который у меня есть:
import random
from time import sleep
def vragenLijst():
vragen_list = open("questions.txt").readlines()
return vragen_list
def stel_vraag(vragen_list):
vragen_IAT = {
"vraag_1" : str(vragen_list[0]),
"vraag_2" : str(vragen_list[1]),
"vraag_3" : str(vragen_list[2]),
"vraag_4" : str(vragen_list[3])
}
vragen_FICT = {
"vraag_5" : vragen_list[4],
"vraag_6" : vragen_list[5],
"vraag_7" : vragen_list[6],
"vraag_8" : vragen_list[7]
}
vragen_SE = {
"vraag_9" : vragen_list[8],
"vraag_10" : vragen_list[9],
"vraag_11" : vragen_list[10],
"vraag_12" : vragen_list[11]
}
vragen_BDAM = {
"vraag_13" : vragen_list[12],
"vraag_14" : vragen_list[13],
"vraag_15" : vragen_list[14],
"vraag_16" : vragen_list[15]
}
counter_IAT = 0
print("Hier komen de eerste vragen: ")
sleep (2.0)
print()
while vragen_IAT:
antwoord = input(vragen_IAT "Y/N: ")
for vragen in vragen_IAT:
if antwoord == "y" or antwoord == "Y":
counter_IAT = counter_IAT 1
print(counter_IAT)
elif antwoord == "n" or antwoord == "N":
counter_IAT = counter_IAT
print(counter_IAT)
else:
print("Dit heb ik niet begrepen.. Vul [Y]es of [N]o in: ")
if antwoord != "y" or antwoord != "Y":
continue
# while vragen_FICT:
# while vragen_SE:
# while vragen_BDAM:
def main():
vragen = vragenLijst()
stel_vraag(vragen)
if __name__ == "__main__":
main()
Я новичок, и я надеюсь, что я достаточно хорошо объяснил свой вопрос для вас, ребята! Любая помощь будет оценена по достоинству!
Комментарии:
1. Звучит как проблема XY. У вас
vragen_list
уже есть список со всеми вопросами. В чем преимущество помещения их в словари перед отображением их пользователю? вы могли бы просто сгруппировать их по индексу (IAT = [0,1,2,3]; FICT = [4,5,6,7] …)2. Массив вопросов представляется более разумным использовать здесь, чем словарь, если это не является обязательным требованием.
Ответ №1:
Я не могу воспроизвести весь ваш код, но дам вам предысторию. Предположим myDict
, что в качестве словаря ваших вопросов вы можете перебирать ключи, которые являются вопросами, и проверять if
их следующим образом:
for question in myDict.keys():
myAnswer = input(question)
if myAnswer # Continue validation
Комментарии:
1. Эй, чувак! Я использовал ваше объяснение, оно работает для меня! Мне просто нужно выяснить, как остановиться после 4 вопросов сейчас! Спасибо
Ответ №2:
Я думаю, это сработает для того, что вы просите:
questions = {'alpha? ': 'y', 'beta? ': 'n'}
for q,a in questions.items():
while input(q).lower() != a:
print("WRONG!")
Комментарии:
1. Привет, спасибо за ваш комментарий! Я использовал цикл for, а затем мой оператор if с моими собственными проверками, которые у меня есть.