Урок 2 из 8 · 20 мин · обновлено

Типы данных и условия

Чем число отличается от строки, как превратить одно в другое и как научить программу принимать решения с помощью if, elif и else.

Типы данных

У каждого значения в Python есть тип — он определяет, что с этим значением можно делать.

Тип Что хранит Пример
int целое число 42, -7
float дробное число 3.14, 0.5
str строка, то есть текст "Привет", "42"
bool логическое значение True, False

Тип можно узнать функцией type():

Python
print(type(42))      # <class 'int'>
print(type("42"))    # <class 'str'>

Обратите внимание: "42" в кавычках — это уже не число, а текст.

Превращение типов

Числа складываются, строки склеиваются, а смешивать их нельзя:

Python
print(2 + 3)        # 5
print("2" + "3")    # 23 — строки просто склеились
print("2" + 3)      # ошибка TypeError

Чтобы превратить одно в другое, есть функции int(), float() и str():

Python
print(int("2") + 3)     # 5
print("Мне " + str(25)) # Мне 25

Это особенно важно при работе с input() — функцией, которая спрашивает пользователя и ждёт ответа. Она всегда возвращает строку:

Python
age = int(input("Сколько вам лет? "))
print("Через 10 лет вам будет", age + 10)

Сравнения

Сравнение отвечает на вопрос «да или нет» и возвращает True или False:

Оператор Значение
== равно
!= не равно
>, < больше, меньше
>=, <= больше или равно, меньше или равно

Не путайте: = присваивает значение, а == сравнивает.

Условия: if, elif, else

Условия позволяют программе выбирать, что делать:

Python
temperature = 12

if temperature >= 20:
    print("Можно идти в футболке")
elif temperature >= 10:
    print("Возьмите куртку")
else:
    print("Нужна тёплая одежда")

Результат: Возьмите куртку.

Как это работает:

  1. Python проверяет первое условие. Если оно верно, выполняет блок под ним и пропускает остальное.
  2. Если нет, проверяет следующее elif (сокращение от else if).
  3. Если не подошло ни одно условие, выполняется блок else.

Двоеточие в конце строки и отступ в 4 пробела обязательны: так Python понимает, какие строки относятся к условию.

Несколько условий сразу

  • and — верны оба условия;
  • or — верно хотя бы одно;
  • not — переворачивает значение.
Python
age = 30
has_ticket = True

if age >= 18 and has_ticket:
    print("Проходите")

Попробуйте сами. Напишите программу для кинотеатра: она спрашивает возраст и выводит цену билета. До 7 лет — бесплатно, от 7 до 17 — 250 ₽, от 18 — 400 ₽.

Решение
Python
age = int(input("Ваш возраст: "))

if age < 7:
    print("Бесплатно")
elif age < 18:
    print("Билет стоит 250 ₽")
else:
    print("Билет стоит 400 ₽")

Проверять второе условие как age >= 7 and age < 18 не нужно: если программа дошла до elif, значит первое условие уже не выполнилось и возраст точно не меньше 7.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Какой тип у значения '5' (в кавычках)?

  2. Пользователь ввёл 30 в ответ на input(). Что получит программа?

  3. Зачем нужен отступ под строкой с if?

  4. Чему равно выражение age >= 18 and age < 65, если age = 70?