78.48K
Category: programmingprogramming

SPP_Praktika_5_FizzBuzz_final

1.

Ветвления в Python
if · elif · else · составные условия · FizzBuzz
number = int(input("Введите число: "))
# программа выбирает подходящий ответ
Практическая работа
№5

2.

Ветвление выбирает один путь
результат условия определяет, какой блок выполнит программа
temperature = 8
if temperature < 0:
print("Мороз")
else:
print("Температура выше нуля")
True
выполняется блок if
False
выполняется блок else
В одной цепочке if / elif / else срабатывает только первая подходящая ветка
2

3.

Условия возвращают True или False
сравнение само является значением типа bool
>= <=
age = 19
print(age >= 18)
print(age == 21)
print(age != 0)
границы диапазона
# True
# False
# True
== !=
равенство и неравенство
> <
больше и меньше
3

4.

Цепочка if / elif / else
Python проверяет условия сверху вниз
score = 76
if score >= 90:
print("Отлично")
elif score >= 70:
print("Хорошо")
elif score >= 50:
print("Зачёт")
else:
print("Незачёт")
if
первая проверка
elif
следующие варианты
else
все оставшиеся случаи
4

5.

Остаток от деления
оператор % помогает проверить делимость числа
print(18 % 4)
print(20 % 4)
print(25 % 6)
print(30 % 6)
#2
#0
#1
#0
остаток 0
число делится без остатка
остаток не 0
после деления что-то осталось
Сначала вычисляется %, затем результат сравнивается с нулём
5

6.

Проверка делимости
пример использует число 4, а не правила итогового задания
number = 28
number % 4
if number % 4 == 0:
print("Делится на 4")
else:
print("Не делится на 4")
получаем остаток
== 0
проверяем деление без остатка
Знак == сравнивает, а знак = присваивает значение
6

7.

Составное условие с and
обе части должны дать True
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("Вход разрешён")
else:
print("Вход запрещён")
age >= 18
первая часть условия
has_ticket
вторая часть условия
and
требует True с обеих сторон
7

8.

Операторы or и not
or принимает любой подходящий вариант, not меняет результат
day = "Sunday"
is_blocked = False
if day == "Saturday" or day == "Sunday":
print("Выходной")
if not is_blocked:
print("Пользователь активен")
or
not
достаточно одной истинной части
меняет False на True и наоборот
8

9.

Сначала проверяют более точный случай
ранняя общая ветка может скрыть более конкретный вариант
Проблема
Правильный порядок
score = 95
score = 95
if score >= 50:
print("Зачёт")
elif score >= 90:
print("Отлично")
if score >= 90:
print("Отлично")
elif score >= 50:
print("Зачёт")
Проверка 95 должна попасть в более точную категорию
9

10.

Отдельные if и единая цепочка
выбор зависит от того, сколько сообщений должно появиться
Два независимых сообщения
wind = 22
rain = True
if wind > 15:
print("Сильный ветер")
if rain:
print("Идёт дождь")
Только один вариант
score = 76
if score >= 90:
print("A")
elif score >= 70:
print("B")
else:
print("C")
10

11.

Вложенное условие
вторая проверка выполняется только внутри первой ветки
has_ticket = True
age = 15
if has_ticket:
if age < 16:
print("Нужен сопровождающий")
else:
print("Можно пройти самостоятельно")
else:
print("Нет билета")
Внешний if
проверяет наличие билета
Внутренний if
уточняет возраст
Отступы
показывают вложенность блоков
11

12.

Ввод числа и текстовый результат
input() возвращает строку, поэтому число преобразуется через int()
number_text = input("Введите целое число: ")
number = int(number_text)
if number > 0:
message = "Положительное"
else:
message = "Ноль или отрицательное"
print(number, message)
input()
получаем строку
int()
получаем целое число
message
храним выбранный текст
12

13.

Типичные ошибки
проверяйте операторы, порядок веток и отступы
= вместо ==
Общая ветка раньше
if value = 0:
if score >= 50:
Потерян отступ
and заменён на or
print("Внутри if")
age >= 18 or has_ticket
Перед запуском проговорите, какая ветка должна сработать
13

14.

Мини-проект: контроль доступа
пример для разбора, не итоговое задание
age = int(input("Возраст: "))
has_pass = input("Есть пропуск? yes/no: ").lower()
is_blocked = input("Есть блокировка? yes/no: ").lower()
if age >= 18 and has_pass == "yes" and is_blocked != "yes":
result = "Доступ разрешён"
else:
result = "Доступ запрещён"
Что здесь происходит?
1.
получаем данные
2.
соединяем проверки
3.
выбираем ответ
4.
выводим результат
print(result)
14

15.

Практическая работа №5
FizzBuzz для одного числа
Тестовые значения
1.
Запросить у пользователя одно целое число
2.
Для числа, кратного 3 и 5, вывести FizzBuzz
3.
Для числа, кратного только 3, вывести Fizz
4.
Для числа, кратного только 5, вывести Buzz
5.
В остальных случаях вывести само число
7
9
10
15
30
Готового кода на слайдах нет
Цикл пока не нужен: программа обрабатывает одно введённое число
15

16.

Дополнительные задачи
после основной части или как варианты
Заряд батареи
Скидка на билет
Вывести высокий, средний, низкий или критический
уровень
Учесть возраст и наличие студенческого билета
Вариант 1
Вариант 2
Кратно 4 и 7
Три числа
Придумать три текстовых ответа для разных случаев
Определить наибольшее число и обработать равные
значения
Вариант 3
Вариант 4
Дополнительные задачи выполняются с собственными тестовыми значениями
16

17.

Что должно быть готово к сдаче
1.
Файл .py с работающей программой
Сейчас
2.
Ввод преобразован в int
3.
Составное условие записано правильно
4.
Сначала проверяется самый точный случай
5.
Программа проверена на всех пяти тестах
6.
Каждый участник пары может объяснить ветки
создать файл
записать ввод
составить порядок веток
проверить условия
протестировать
17
English     Русский Rules