Условия задачи:

 

Викторина со столицами. Напишите программу, которая создает словарь, содержащий в качестве ключей названия американских штатов и в качестве значений - их столицы.
(Список штатов и соответствующих им столиц можно найти в Интернете.) Затем про­грамма должна провести викторину, случайным образом выводя название штата и пред­лагая ввести его столицу. Программа должна провести подсчет количества правильных
и неправильных ответов. (Как вариант, вместо американских штатов программа может использовать названия стран и их столиц; названия достопримечательностей и городов, в которых эти шедевры находятся, и т. д.)

 

Решение задачи:

from random import sample

def main():
    dict_cap = {'Москва': 'Москва', 'Новосибирск': 'Новосибирская область', 'Екатеринбург': 'Свердловаская область',
    'Казань': 'р. Татарстан'}
    totall_correct = 0
    totall_uncorrect = 0
    cap_list = [i for i in dict_cap] # создаем список из ключей словаря
    # для того что бы потом можно было в случайном порядке набрать 
    # уже другой список который будем перебирать. 
    city_comp = sample(cap_list, len(cap_list))
    for i in city_comp:
        print(i)
        cap_user = input(f'Введите столица региона {dict_cap[i]}:')
        if cap_user == i:
            totall_correct += 1
        else:
            totall_uncorrect += 1
    print(f'Вы правильно ответили на {totall_correct} и не правильно на {totall_uncorrect}' )

main()