Структурное программирование основывается на использовании базовых алгоритмических конструкций:
Из комбинации базовых алгоритмических конструкций можно составить алгоритм решения задачи.
У каждой алгоритмической конструкции есть один вход и один выход.
boolboolВ Python для хранения логических значений используется тип bool.
Существует два литерала, поддерживаемых типом bool - True (истина) и False (ложь).
Для сравнения значений используются операторы сравнения:
< (Меньше)> (Больше)<= (Меньше или равно)>= (Больше или равно)== (Равно)!= (Не равно)Результатом вычисления логического выражения становится значение типа bool:
Строки в Python сравниваются в алфавитном (лексикографическом) порядке.
Ветвление в Python записывается следующим образом:
В Python вложенность инструкций определяется отступами. Блок инструкций начинается после двоеточия :
Дополнительная информация по оформлению кода - PEP8
Посчитайте средний балл за три контрольные работы. Если результат превышает 7 баллов, выведите сообщение “Зачтено!”.
Тест 1:
Тест 2:
Полная форма инструкции ветвления:
Рассчитайте оплату труда репетитора. Пользователь вводит количество отработанных часов и почасовую оплату. Если часы работы превышают 20, оплата за переработки умножается на 1.5.
BASE = 20
MULT = 1.5
hours = int(input("Часы работы:"))
rate = int(input("Почасовая оплата:"))
if hours > BASE:
overtime = hours - BASE
print(f"Переработка: {overtime} ч")
overtime_pay = overtime * rate * MULT
gross_pay = BASE * rate + overtime_pay
else:
gross_pay = hours * rate
print(f"Оплата труда: {gross_pay} руб.")Тест 1
Тест 2
Одна инструкция ветвления может располагаться внутри другой.
Программа выводит сообщение-отзыв исходя из полученной отметки. Для отметки от 7 и выше - “Отлично!”, для отметки от 4 до 6 - “Нормально”, ниже 4 - “Попробуйте ещё раз”.
Вложенные инструкции if можно записать с помощью инструкции elif:
Для комбинирования логических выражений можно использовать логические операторы - not, and и or.
Результат работы логических операторов можно представить в форме таблиц истинности.
Оператор НЕ:
A |
not A |
|---|---|
False ❌ |
True ✅ |
True ✅ |
False ❌ |
Оператор И:
A |
B |
A and B |
|---|---|---|
False ❌ |
False ❌ |
False ❌ |
False ❌ |
True ✅ |
False ❌ |
True ✅ |
False ❌ |
False ❌ |
True ✅ |
True ✅ |
True ✅ |
Оператор ИЛИ:
A |
B |
A or B |
|---|---|---|
False ❌ |
False ❌ |
False ❌ |
False ❌ |
True ✅ |
True ✅ |
True ✅ |
False ❌ |
True ✅ |
True ✅ |
True ✅ |
True ✅ |
Приоритетность логических операторов:
notandor| Приоритет | Операторы |
|---|---|
| 7(высокий) | ** |
| 6 | *, /, //, % |
| 5 | +, - |
| 4 | ==, !=, <=, >=, >, < |
| 3 | not |
| 2 | and |
| 1(низкий) | or |
Найдите среди трёх чисел максимальное. Сохраните результат в переменной под именем maxval:
У одной задачи может быть множество решений. Возможно первое решение пришедшее в голову не будет самым простым.
Поставьте себя на место компьютера: один из способов составить алгоритм – спросить себя, как бы вы решали эту задачу.
Универсальность – это хорошо. Старайтесь делать решение задачи максимально общим.
Не изобретайте велосипед. Самые распространённые задачи, скорее всего, уже имеют алгоритм решения. Но самостоятельный поиск решения – это хороший способ прокачать свои навыки.