Ветвления if/else

проверка условий

Ветвления if/else

Ветвления помогают программе принимать решения. Это как в жизни: "Если дождь — возьми зонт, иначе — иди без зонта".

if УСЛОВИЕ:
    КОД_ЕСЛИ_ПРАВДА
else:
    КОД_ЕСЛИ_НЕ_ПРАВДА
weather = "дождь"
if weather == "дождь":
    print("Возьми зонт!")
else:
    print("Можно идти без зонта")

После двоеточия код отделяется отступом (4 пробела или Tab).

Сравнения

В условиях мы сравниваем значения:

Знак Описание Пример
> Больше 5 > 3 → True
< Меньше 5 < 3 → False
== Равно 5 == 5 → True
!= Не равно 5 != 3 → True
>= Больше или равно 5 >= 5 → True
<= Меньше или равно 5 <= 3 → False
score = 85
if score >= 70:
    print("Ты крутой! 🎉")
else:
    print('Нужно больше тренироваться, бро :c')

Несколько условий (and/or)

Можно проверять несколько условий сразу:

  • and — оба условия должны быть правдой
  • or — хотя бы одно условие должно быть правдой
age = 25
has_ticket = True

if age >= 18 and has_ticket:
    print('Идешь на человека паука 🎬')
else:
    print("Вход запрещён")
day = "суббота"
if day == "суббота" or day == "воскресенье":
    print('Отдыхаем!!! 🎉')
else:
    print('Работаем!!!! 😴')

Оператор elif

Когда нужно проверить много вариантов, используем elif (сокращение от "else if"):

grade = 4
if grade == 5:
    print("Отлично!")
elif grade == 4:
    print("Хорошо")
elif grade == 3:
    print("Удовлетворительно")
else:
    print('Тоже неплохо')

Игра "Кликер" 🖱️

Полный код игры

import pgzrun

# ===== НАСТРОЙКИ =====
WIDTH = 600
HEIGHT = 700
TITLE = "Кликер"

# ===== ПЕРЕМЕННЫЕ =====
score = 0
clicks = 0
game_state = "menu"

# Кнопка (круг)
button = {"x": 300, "y": 350, "r": 80}

# Цвет кнопки
button_color = (74, 144, 226)


def draw():
    screen.fill((20, 30, 50))

    if game_state == "menu":
        draw_menu()
    elif game_state == "game":
        draw_game()
    elif game_state == "task":
        draw_task()


def draw_menu():
    screen.draw.text("КЛИКЕР", center=(300, 150), fontsize=70, color="white")

    screen.draw.text("Нажми ПРОБЕЛ чтобы начать", center=(300, 600), fontsize=30, color="yellow")


def draw_game():
    # Счет
    screen.draw.text(f"{score}", (20, 20), fontsize=50, color="white")
    screen.draw.text(f"Кликов: {clicks}", (20, 80), fontsize=30, color="gray")


    # Главная кнопка
    screen.draw.filled_circle((button["x"], button["y"]), button["r"], button_color)
    screen.draw.circle((button["x"], button["y"]), button["r"], (255, 255, 255))
    screen.draw.text("КЛИК!", center=(button["x"], button["y"]), fontsize=40, color="white")

# ===== ОБНОВЛЕНИЕ =====
def update():
    global button_color

    if game_state != "game":
        return



# ===== СОБЫТИЯ МЫШИ =====
def on_mouse_down(pos):
    global score, clicks, game_state

    if game_state != "game":
        return

    # Главная кнопка
    if (pos[0] - button["x"]) ** 2 + (pos[1] - button["y"]) ** 2 < button["r"] ** 2:
        clicks += 1



def get_current_task():
    for task in tasks:
        if not task["done"]:
            return task
    return None

def reset_game():
    global score, clicks, button_color, game_state
    score = 0
    clicks = 0
    button_color = (74, 144, 226)
    game_state = "menu"


def on_key_down(key):
    global game_state

    if key == keys.SPACE:
        if game_state == "menu":
            game_state = "game"
        elif game_state == "task":
            reset_game()

    if key == keys.ESCAPE:
        if game_state == "task":
            game_state = "menu"


# ===== ЗАПУСК =====
pgzrun.go()

Задания по игре ≽^◕ ˕ ◕^≼

Теперь изменим игру, используя ветвления:

  1. Меняем цвет кнопки при 30 кликах
    • Пусть кнопка становится оранжевой при 30 кликах
    • Цвет оранжевый: (255, 165, 0)
    • Подсказка: добавить условие в update() if clicks > 30:
    # Красный
    if clicks > 30:
        button_color = (255, 0, 0)  
  2. Меняем бонусный клик
    • Пусть каждый 5-й клик дает 5 очков
    • Подсказка: добавь условие в on_mouse_down()
    if clicks % 5 == 0:
        score += 5
    else:
        score += 1
  3. Меняем текст при 50 очках
    • Пусть изменится текст кнопки при 50 очках
  4. Добавь надпись "Клик!"
    • Когда кликаешь по кнопке, в консоль выводится "Клик!"
    • Подсказка: используй команду print()