Ветвления 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()
Задания по игре ≽^◕ ˕ ◕^≼
Теперь изменим игру, используя ветвления:
-
Меняем цвет кнопки при 30 кликах
- Пусть кнопка становится оранжевой при 30 кликах
- Цвет оранжевый:
(255, 165, 0) - Подсказка: добавить условие в update()
if clicks > 30:
# Красный if clicks > 30: button_color = (255, 0, 0) -
Меняем бонусный клик
- Пусть каждый 5-й клик дает 5 очков
- Подсказка: добавь условие в on_mouse_down()
if clicks % 5 == 0: score += 5 else: score += 1 -
Меняем текст при 50 очках
- Пусть изменится текст кнопки при 50 очках
-
Добавь надпись "Клик!"
- Когда кликаешь по кнопке, в консоль выводится
"Клик!" - Подсказка: используй команду print()
- Когда кликаешь по кнопке, в консоль выводится