""" Урок 08. Операторы ветвления — весь код примеров одним файлом. Источник: subjects/python-fundamentals/course/lessons/08-branching-statements/examples.html Файл собран автоматически (tools/build_lesson_examples.py): правьте страницу урока. Запуск: python lesson-08.py """ # ==================================================================== # Пример 1. Базовый if # ==================================================================== temperature = 38.2 if temperature > 37: print("Повышенная температура") # ==================================================================== # Пример 2. if-elif-else: знак числа # ==================================================================== number = -7 # результат int(input("Введите число: ")) if number > 0: print("Число положительное.") elif number < 0: print("Число отрицательное.") else: print("Число равно нулю.") # Число отрицательное. # ==================================================================== # Пример 3. Несколько независимых if — не elif # ==================================================================== x = 20 if x > 15: print("x больше 15") if x > 5: print("x больше 5") if x == 0: print("x равен 0") else: print("x не равен 0") # x больше 15 # x больше 5 # x не равен 0 # ==================================================================== # Пример 4. Truthy/falsy: приведение к bool # ==================================================================== values = [0, 1, "", "текст", [], [1, 2], None, {}, {"a": 1}] for value in values: if value: print(f"{value!r:>10} -> True") else: print(f"{value!r:>10} -> False") # ==================================================================== # Пример 5. Вложенные if vs логические операторы # ==================================================================== age = 25 if age >= 18: if age <= 60: print("Рабочий возраст (вложенный if)") if 18 <= age <= 60: print("Рабочий возраст (цепочка сравнений)") # ==================================================================== # Пример 6. and / or / not: приоритет операторов # ==================================================================== a, b, c = True, False, True print(a and b or c) # (a and b) or c -> True print(a or b and c) # a or (b and c) -> True print(not a and b) # (not a) and b -> False print(not (a and b)) # not (a and b) -> True # ==================================================================== # Пример 7. Тернарный оператор # ==================================================================== x = 10 result = "Положительное" if x > 0 else "Отрицательное" print(result) x = 0 result = "Положительное" if x > 0 else "Отрицательное" if x < 0 else "Ноль" print(result) # Положительное # Ноль # ==================================================================== # Пример 8. match-case: базовый синтаксис, | и _ # ==================================================================== x = 5 match x: case 1 | 2 | 3: print("Малое число") case 4 | 5 | 6: print("Среднее число") case _: print("Другое число") # Среднее число # ==================================================================== # Пример 9. match-case: guard-условие и проверка типа # ==================================================================== number = 7 match number: case 1 | 2 | 3: print("Это один, два или три") case n if n > 5: print("Число больше 5") case _: print("Число меньше или равно 5") value = "Hello" match value: case int(): print("Это целое число.") case str(): print("Это строка.") case bool(): print("Это логический тип.") case _: print("Неизвестный тип данных.") # ==================================================================== # Пример 10. match-case: паттерн-матчинг кортежей # ==================================================================== point = (0, 5) match point: case (0, 0): print("Начало координат") case (x, 0): print(f"На оси X в точке {x}") case (0, y): print(f"На оси Y в точке {y}") case (x, y): print(f"Точка {x}, {y}") # На оси Y в точке 5 # ==================================================================== # Пример 11. Практика: доступ к разделу и стоимость билета # ==================================================================== role = "admin" section_access = True if role == "admin": print("Вы администратор.") if section_access: print("У вас есть доступ к разделу.") else: print("У вас нет доступа к разделу.") else: print("Вы не администратор.") ticket_type = "стандартный" # результат input("Введите тип билета (стандартный/vip): ") age = 65 # результат int(input("Введите возраст: ")) if ticket_type == "vip": price = 3000 else: price = 1000 if age < 12: price *= 0.50 elif age > 60 and ticket_type == "стандартный": price *= 0.70 print("Стоимость билета:", price) # Стоимость билета: 700.0 # ==================================================================== # Пример 12. Ловушка: спутать независимые if с elif # ==================================================================== score = 75 if score >= 60: print("Зачёт") if score >= 90: print("Отлично") # напечаталось только "Зачёт" — это два независимых if, # второе условие score >= 90 просто оказалось ложным для 75