0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 68

Словарь и перебор циклом

22.10.2019, 13:52. Показов 8349. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день, можете пожалуйста помочь с решением данного задания? Комментарии в коде.

1) Создайте словарь из 3-х ключей «Hello», «Bуe» и «Lesson» и значениями соответственно «Здравствуй», «Пока» и «Урок».
2) В бесконечном цикле выводите случайное значение из словаря и просите пользователя написать перевод на английском.
3) Проверяйте на соответствие введённой пользователем строки и ключа словаря. Если пользователь ввёл всё правильно, то выводить ему следующее слово. Если неправильно, то сообщать ему об этом, и заново ждать от него уже другого ответа. И так до тех пор, пока он не введёт правильный ответ.
4) Если пользователь вводит команду «show», то вывести словарь.
5) Если пользователь вводит «quit», то завершать программу.

Примечание: не забывайте, что если пользователь будет писать, например: «hello», «Hello» или «HELlo» - то это всё считать правильными ответами.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import random
 
slovar = {'Hello': 'Здравствуй', 'Bye': 'Пока', 'Lesson':'Урок'}
keys = list(slovar.keys())
values = list(slovar.values())
slovar_2 = {} # добавлю сюда ответы и сравню с
while True:
        rand_value = random.choice(values)
        print(rand_value) # вывожу рандомно значение словаря slovar
        prompt = input("Напишите перевод слова на английском: ")
        if prompt == 'show':
                print(slovar) # если напишет show, то покажу словарь slovar
        elif prompt == 'quit':
                print('Завершение опроса')
                exit(0)
        else:
                try:
                        prompt = prompt.title()
 
                        # добавляю слово из prompt и рандомное значение в slovar_2
                        slovar_2.setdefault(prompt, rand_value)
 
                        # узнаю, есть ли слово из prompt в словаре slovar
                        get_slovar_word = slovar.get(prompt)
                        if get_slovar_word == None: # проблемное место
                        # если возвращает None
                                print('Неправильный перевод слова')
                                prompt_2 = input('Попробуйте еще: ')
                                # потом пишу хоть правильное, хоть нет выдает следующее рандомное
                                # значение словаря slovar
                        else:
                                # Если в первый раз пишу правильный ключ, то сразу выдает следующее
                                # рандомное значение словаря slovar и пишет Правильно
                                print('Правильно')
                except Exception as exp:
                        while exp:
                                print(exp)
# Также при вводе show и quit выполняется то, что нужно, пока не попал в проблемное место
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2019, 13:52
Ответы с готовыми решениями:

Создать словарь из фрейма циклом
Добрый день! Подскажите как создать словарь из фрейма с помощью цикла? Пока всё делаю вручную import pandas as pd f1 =...

Перебор циклом while
Добрый вечер.Условие моей задачи таково Построить сплайн параболический. Построить график и отметить на нём узлы интерполяции. Моя...

Перебор массива циклом
Добрый день. Столкнулся с такой проблемой как перебор массива циклом. Долгое время не могу правильно сделать. Есть массив $massiv =...

2
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
22.10.2019, 14:35
Лучший ответ Сообщение было отмечено Bigthanks как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import random
 
 
slovar = {'Hello': 'Здравствуй', 'Bye': 'Пока', 'Lesson':'Урок'}
rand_value = random.choice(list(slovar.values()))
 
while True:
    print(rand_value) # вывожу рандомно значение словаря slovar
    prompt = input("Напишите перевод слова на английском: ")
    if prompt == 'show':
        print(slovar) # если напишет show, то покажу словарь slovar
    elif prompt == 'quit':
        print('Завершение опроса')
        exit(0)
    else:
        if slovar.get(prompt.title()) == rand_value:
            print('Правильно')
            rand_value = random.choice(list(slovar.values()))
        else:
            print('Неправильный перевод слова. Попробуйте еще.')
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
22.10.2019, 14:38
Bigthanks, а этот код работает? навскидку что-то не так с отступами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2019, 14:38
Помогаю со студенческими работами здесь

Перебор циклом файлов в каталоге
Доброго времени суток. Как пройтись циклом по файлам в папке?

Перебор коллекции объектов циклом for each
Есть разные объекты на форме. Нужно перебрать в цикле for each Добавлено через 18 минут уже неактуально))) Добавлено через 21...

Перебор двух массивов циклом while не работает
Помогите разобраться! Задача следующая, вытянуть из одной бд данные и записать их в индексированный массив, таких массивов будет столько...

Перебор ячеек таблицы MS Word циклом for
Доброго времени суток! Столкнулся с такой проблемой: проверяю ячейки таблицы word на наличие определенной записи,все идёт хорошо до...

Массив элементов веб-страницы перебор циклом
Здравствуйте! Подскажите пожалуйста, почему выходит такая ошибка?: jquery.min.js:2 Uncaught TypeError: tab.forEach is not a function ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru