Диалоговые окна, как элементы графического интерфейса, предназначены для вывода сообщений пользователю, получения от него какой-либо информации, а также управления.
Создадим свое диалоговое окно. Для примера оно создается используя несколько виджетов:
from tkinter import * window = Tk() window.title(«Message box title») window.geometry(«300×75″) label = Label(window, text=»My message content!») label.pack() button = Button(window, text=»Ok», width=10, command=window.destroy) button.pack(side=RIGHT) window.mainloop()
1
2
3
4
5
6
7
8
9
10
Линейные алгоритмы
Выполняя первую из них, Калькулятор прибавляет к числу на экране 3, а выполняя вторую, умножает его на 4. Запишите порядок команд в про-грамме получения из числа 3 числа 57, содержащей не более 6 команд, указывая лишь номера команд.
как писать программы №1 pascal знакомство сложение двух чисел
(Например, программа 21211 это программа
которая преобразует число 2 в 50.)
- Победитель многих олимпиад, Петя решил развесить дипломы, полученные за олимпиады, на стене в своей комнате. Стена имеет вид прямоугольника размера M × N сантиметров, а диплом — прямоугольника размера A × B сантиметров. Выясните, какое максимальное число дипломов Петя сможет разместить на стене. Поворачивать дипломы нельзя, они должны быть размещены так, чтобы их стороны были параллельны краям стены. Например, на стене размером 300 × 200 сантиметров можно разместить 84 диплома размера 21 × 29 сантиметров.
- Поменять значения переменных A и B между собой, не используя дополнительных переменных.
- Компания предлагает услуги по окраске досчатых заборов. У нее три предложения: 10 досок – 10 рублей. 5 досок – 8 рублей. 1 доска – 2 рубля. Напишите программу, подсчитывающую минимальную стоимость заказа в зависимости от введенного количества досок n. Усовершенствуйте программу для любых трех коммерческих предложений
- Студент начал решать задачи данного урока программирования, когда электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и min2 минут. Составьте программу, позволяющую определить, сколько времени студент решал эти задачи. (Будем считать, что задачи решались не дольше суток.)
- Вычислите объем параллелепипеда со сторонами a, b, c.
- Напишите программу, которая вычисляет квадрат синуса вещественного числа, введенного с клавиатуры. На экран выводится дробная часть результата.
- Напишите программу, которая вычисляет квадратный корень суммы трех вещественных чисел, введенных с клавиатуры. Результат округлить до ближайшего целого.
- Напишите программу, которая вычисляет радиус окружности по введенной с клавиатуры площади окружности.
- Напишите программу, которая выводит квадрат косинуса угла в градусах, введенного с клавиатуры.
- Напишите программу, которая выводит сумму косинуса и синуса угла в градусах, введенного с клавиатуры.
- Напишите программу, которая выводит квадратный корень из косинуса угла в градусах, введенного с клавиатуры.
- Составить диалоговую программу, которая спрашивает, сколько товара и по какой цене берет покупатель, сообщает ему стоимость покупки. Затем спрашивает, сколько денег он дает и сообщает величину сдачи.
- Переменная X содержит трехзначное число. Поместите в переменную S сумму цифр этого числа. Выведите результат.
- Найти произведение цифр заданного целого четырехзначного числа.
- Присвоить целой переменной а первую цифру трехзначного положительного числа, целой переменной b вторую цифру, целой переменной с – третью. (Если число 325, то а=3, b=2, с=5. 325=3*100+2*10+5)
- Присвоить целой переменной h первую цифру из дробной части положительного вещественного числа x. (Если x=32.59, то h=5).
- Идёт k-я секунда суток. Определить, сколько полных часов (h) и полных минут (m) прошло к этому моменту (например, h=3 и m=40, при k=13257=3*3600+40*60+57).
Источник: studfile.net
ИНФОРМАТИКА 8 класс: Общая структура программы в языке Паскаль
Диалог с пользователем через командную строку: программа Yes/No на Python
Диалоговые программы используются везде, примером может служить любое приложение на вашем компьютере (браузер, видеоплееры, текстовые редакторы и т. д.). Диалог Yes/No — это простой пример диалоговой программы, работающей с командной строкой.
Что такое диалоговая программа и зачем она нужна
Программа, в которой предусмотрено взаимодействие с пользователем, называется диалоговой (интерактивной).
Ввод текста, нажатия на кнопки, загрузка файлов — всё это способы взаимодействия пользователя с приложением.
Диалог между программой и пользователем — это важная часть любого проекта. Если программа работает с одними строго определенными данными, она не несёт какого-либо практического смысла.
Диалоговая программа Yes/No на Python
Диалог может вестись как через графический интерфейс, так и через командную строку. С помощью Python можно реализовать и то и другое, однако общение с пользователем через терминал имеет более простую реализацию и требует меньше кода.
Суть такой программы проста: пользователь отвечает на вопросы, вводя в консоль Yes – да, или No – нет. Не стоит думать, что сейчас актуально взаимодействовать с программой только через графический интерфейс, командная строка также используется.
Например, в операционной системе Linux часто устанавливают программы через командную строку. Система может приостановить процесс и спросить пользователя, желает ли он продолжить установку «Do you want to continue [Y/n]?», для подтверждения он должен ввести Y, иначе N.
Понятно, что диалог через командную строку чаще используется продвинутыми пользователями или техническими специалистами, которых не пугает работа в режиме текстовых команд.
Консольный диалог Yes/No особенно актуален, потому что не требует реализовывать графический интерфейс, который может быть бесполезен для выполнения определённых задач.
Реализация функции диалога Yes/No на Python
Написать консольную диалоговую программу на Python очень просто, однако нужно учесть и продумать некоторые нюансы, такие как неверный ввод от пользователя. Yes/no легко можно заменить на Да/нет, но давайте следовать общепринятым стандартам и использовать английский язык.
Объявление функции
Поместим всю логику диалоговой программы в отдельную функцию, которую объявим так:
def yes_no_dialog(question, default_answer=»yes»):
Здесь аргументы означают следующее:
- question – это вопрос, который выводится в командную строку, и на который пользователь должен дать ответ «yes» или «no».
- default_ answer – это необязательный параметр, который будет использоваться в том случае, если пользователь не введет ответ, а просто нажмет Enter.
Начальные настройки
Предположим, что пользователь может вводить не только «yes», но и «y» или «ye». Обработка каждого вариант с помощью условных операторов if — else нецелесообразна и требует много лишнего кода. Поэтому поместим все варианты ответа в словарь:
answers =
default_answer позволяет указать предпочтительный вариант ответа, однако это не очевидно для обычного пользователя. В зависимости от содержимого default_answer будем выводить соответствующую подсказку:
if default_answer == None: # Если ответ по умолчанию не определен tip = » [y/n] » # выводим обе буквы в нижнем регистре elif default_answer == «yes»: # Если ответ по умолчанию «yes» tip = » [Y/n] » # Выделяем Y elif default_answer == «no»: # Если ответ по умолчанию «no» tip = » [y/N] » else: raise ValueError(f’Неверное значение: ‘)
При вводе аргумента default_answer тоже можно допустить ошибку, поэтому в блоке else мы возбуждаем исключение, которое указывает на неверный ввод.
Основной цикл
Необходимо продумать следующие ситуации, когда пользователь:
- Ничего не вводит, но определен default_answer .
- Вводит верный ответ.
- Вводит неверный ответ.
Для реализации лучше использовать бесконечный цикл. Сначала необходимо вывести вопрос и подсказку, а затем получить ввод пользователя:
while True: print(question + tip + «: «, end=»») user_answer = input().lower() # приводим к нижнему регистру
Подробнее про ввод и вывод данных можно почитать здесь.
Теперь ввод необходимо обработать так, чтобы при правильном вводе происходил выход из цикла, а при неправильном цикл начинался заново:
# Если default_answer определен, а пользователь ничего не ввёл if default_answer is not None and user_answer == »: # Выходим из функции, возвращая значение, соответствующее default_answer return answers[default_answer] # Если пользователь ввел верный ответ elif user_answer in answers: return answers[user_answer] # Если ответ неверен, выводим сообщение и продолжаем цикл else: print(«Пожалуйста, введите yes/y или no/nn»)
Полный код функции
Соединив все вместе, получаем готовую к использованию функцию для диалога с пользователем:
def yes_no_dialog(question, default_answer=»yes»): answers = if default_answer == None: tip = » [y/n] » elif default_answer == «yes»: tip = » [Y/n] » elif default_answer == «no»: tip = » [y/N] » else: raise ValueError(f’Неверное значение: ‘) while True: print(question + tip + «: «, end=»») user_answer = input().lower() if default_answer is not None and user_answer == »: return answers[default_answer] elif user_answer in answers: return answers[user_answer] else: print(«Пожалуйста, введите yes/y или no/nn»)
Пример программы
Предположим, что функция получает несколько вопросов из файла, результаты ответов записываются в другой файл, тогда код программы будет выглядеть так:
a = open(«qst.txt», «r», encoding=»utf-8″) # открываем файл для чтения results = [] for line in a: # читаем файл построчно # Для каждой строки вызываем нашу функцию и помещаем возвращаемое # ею значение в список result results.append(yes_no_dialog(line.strip())) a.close() b = open(«results.txt», «w») # Открываем файл для записи for elem in results: # Записываем каждый элемент списка в файл через пробел b.write(str(elem) + » «) b.close()
С помощью метода строк strip удалим лишние символы.
Перед запуском программы на Python надо не забыть подготовить файл с вопросами qst.txt такого вида:
Первый вопрос Второй вопрос Третий вопрос
Чтобы русские буквы корректно отображались — правильно указываем кодировку при открытии файла. В моём случае это encoding=»utf-8″ .
Результатом выполнения будет следующее:
Первый вопрос [Y/n] : Y Второй вопрос [Y/n] : no Третий вопрос [Y/n] : yes
Содержимое файла результата будет следующим:
Источник: all-python.ru