Ребят, всем привет! Python начал изучать недавно, много чего еще не знаю. Нужна ваша помощь.
Делал я программу которая выводит на экран рандомные примеры, которые пользователь должен был решать. И столкнулся с проблемой, что не знаю как сделать проверку того, что ввел пользователь. Помогите мне пж.
#coding utf8: #меню print(«Выберете уровень сложности :») otv = (input(«1 — Easy » + «2 — Medium» + «3 — Hard — «)) # если ввел верные данные if otv == «1»: t2 = True print(«Решите примеры «) #если ввел не верные данные if otv != «1»: while True: print(«Введенно не правильное действие») print(«Попробуйте еще раз :») otv = (input(«1 — Easy » + «2 — Medium» + » 3 — Hard — «)) if otv == «1»: t2 = True print(«Решите примеры «) break while t2: import random a = random.randint(0, 20) b = random.randint(0, 20) r = a + b otv1 = (input(str(a) + » + «+ str(b) + » = » )) if r == «otv1»: v = «Верно » print(v) else: v1 = «Не верно » print(v1)
- Вопрос задан более трёх лет назад
- 4081 просмотр
10 комментариев
Ответы на урок 2023! Новый способ!
Простой 10 комментариев
Источник: qna.habr.com
Создаем тест, лотерею и калькулятор
с помощью if и Scanner
Как ответ введен в программу
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: использование диалогов в 1С
Автор уроков и преподаватель школы: Владимир Милькин
Давайте определимся, что же такое диалог? Вызов команды Сообщить является диалогом? А вызов команды ВвестиЧисло? А вызов ОткрытьЗначение?
Итак, диалог — это прежде всего элемент графического интерфейса , окно . А следовательно вызов Сообщить — диалогом не является, так как у него нет своего отдельного окна.
Диалог — это не просто окно. Это окно, которое открывается пользователю с целью вывода информации и (или) получения ответа.
Для того чтобы показать какой-либо диалог необходимо вызвать команду соответствующую этому диалогу и передать ей необходимые параметры. Команда — это обычная процедура или функция, только написанная не нами, а программистами фирмы 1С. Мы не можем менять эти команды, мы можем их только вызывать.
Предупреждение
Отличным примером диалога является вывод предупреждения пользователю:
Предупреждение(«Осторожно!»);
Что мы видим? Вызов команды Предупреждение, в которую в качестве параметра передаётся строка «Осторожно».
Как написать онлайн тест на 12. ВЗЛОМАЛИ СИСТЕМУ
Когда компьютер дойдёт до строчки, в которой вызывается эта команда, пользователю отобразится диалог предупреждения. И до тех пор, пока пользователь не закроет этот диалог, компьютер будет ожидать на этой же строчке. Только после закрытия диалога — выполнение программы продолжится и начнётся выполнение строки, следующей за вызовом диалога.
К примеру, пусть у нас есть такой код:
Предупреждение(«1»); Предупреждение(«2»); Предупреждение(«3»);
Как он будет выполняться?
В начале компьютер дойдёт до строчки №1 и выполнит команду Предупреждение с параметром «1». В этот момент пользователю покажется диалоговое окно с текстом «1», а компьютер замрёт на этой строчке и будет ожидать, пока пользователь закроет диалог. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
После закрытия диалога компьютер перейдёт к выполнению строчки №2 и выполнит команду Предупреждение уже с другим параметром «2». Пользователю снова покажется диалоговое окно, но уже с текстом «2», а компьютер замрёт уже на второй строчке и будет ожидать, пока пользователь закроет диалог.
Затем компьютер перейдёт к третьей строчке. Ну и так далее.
У команды Предупреждение параметр, отвечающий за текст, который выводится — не единственный. Есть ещё два дополнительных параметра:
Таймаут — означает количество секунд, через которое диалог закроется сам, если этого не сделает пользователь.
К примеру, такой код:
Предупреждение(«Осторожно.», 5, «Внимание!»);
покажет диалог с текстом «Осторожно.» и заголовком «Внимание!», а также закроется через 5 секунд, если пользователь не сделает этого раньше:
А что если мы хотим задать только текст и заголовок окна, а таймаут не задавать?
Во-первых, мы можем передать в качестве таймаута ноль:
Предупреждение(«Осторожно.», 0, «Внимание!»);
А во-вторых, мы можем просто оставить пустое место вместо параметра и система сама поймёт, что нужно оставить его значение по умолчанию:
Предупреждение(«Осторожно.», , «Внимание!»);
Для того, чтобы узнавать обо всех возможных параметрах встроенных команд 1С — пользуйтесь синтакс-помощником так, как это описано в одном из предыдущих уроков (ссылка).
Ввод числа
Некоторые диалоги не только выводят какую-то информацию от нас пользователю, но и наоборот возвращают некий результат взаимодействия с пользователем. Примером такого диалога является ввод числа.
К примеру, напишем:
Число = 0; ВвестиЧисло(Число);
Зачем мы передаём в команду параметр Число? Во-первых, для того, чтобы отобразить начальное значение ввода в диалоге. А, во-вторых, чтобы вернуть в эту переменную значение, которое ввёл пользователь. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Но что если пользователь отказался от ввода и нажал кнопку «Отмена»? Как об этом узнать? Оказывается, функция ВвестиЧисло не только показывает диалог ввода числа, но ещё и возвращает нам Истина в том случае, если пользователь нажал кнопку «ОК» и Ложь, если он отменил ввод, нажав кнопку «Отмена».
Таким образом, более правильным будет такой код:
Число = 0; Результат = ВвестиЧисло(Число); Если Результат = Истина Тогда ОткрытьЗначение(«Вы ввели » + Строка(Число)); Иначе ОткрытьЗначение(«Вы отменили ввод»); КонецЕсли;
В переменную Результат (имя могло быть любым) возвращается Истина или Ложь в зависимости от того какую кнопку нажал пользователь («ОК» или «Отмена»).
В переменную Число возвращается число введенное пользователем.
Вопрос
Заключительным диалогом, который мы рассмотрим, будет является диалог вопроса пользователю.
Имя команды, которая вызывает этот диалог нам известна — Вопрос.
Теперь давайте посмотрим в синтакс-помощнике какие параметры принимает эта команда:
ТекстВопроса — это сам вопрос в текстовом виде, который увидит пользователь.
Кнопки — это одно из предопределенных значений, которые также можно посмотреть в синтакс-помощнике. Например, если передать в этот параметр:
- РежимДиалогаВопрос.ДаНет — в диалоге будет всего две кнопки Да и Нет.
- РежимДиалогаВопрос.ДаНетОтмена — три кнопки Да, Нет и Отмена.
- РежимДиалогаВопрос.ОкОтмена — две кнопки Ок и Отмена.
- И другие варианты кнопок.
Таймаут — этот параметр нам уже знаком.
КнопкаПоУмолчанию — это кнопка, на которой будет фокус при показе окна. Её значения могут быть такими:
- КодВозвратаДиалога.Нет
- КодВозвратаДиалога.Да
- КодВозвратаДиалога.Отмена
- И другие кнопки.
КнопкаТаймаута — если задать значение этой кнопки и параметр Таймаут, то именно на ней будет отображаться количество оставшихся секунд до закрытия диалога. У неё могут быть такие же значения как и у параметра КнопкаПоУмолчанию.
Уфф. Как видите, параметров много. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Но необязательно использовать их все. Как следует из синтакс-помощника обязательными к заполнению являются только первые два:
Вопрос(«Вы хорошо выспались?», РежимДиалогаВопрос.ДаНет);
Вопрос-то мы задали. Хорошо бы теперь получить ответ — выспался пользователь или нет Из того же синтакс-помощника мы узнаём, что кнопка которая была нажата возвращается в качестве результата вызова команды Вопрос:
Результат = Вопрос(«Вы хорошо выспались?», РежимДиалогаВопрос.ДаНет); Если Результат = КодВозвратаДиалога.Да Тогда ОткрытьЗначение(«Какой вы молодец!»); Иначе ОткрытьЗначение(«Нужно раньше ложиться!»); КонецЕсли;
Модальность
Все примеры диалогов, которые мы рассмотрели — являются модальными, потому что компьютер, показывая диалог, замирает на той же строчке и не идёт дальше, пока диалог не закроется.
Ещё можно сказать, что когда мы показываем модальный диалог — пользователь может работать только с этим диалогом. Работа со всей остальной частью системы блокируется, пока не закроется диалог.
Таким недостатком не обладают немодальные версии диалогов, но к ним переходить нам ещё рано.
Источник: helpme1s.ru