Когда вы начинаете работать с Python, первое, что нужно понять, — это как Python работает с данными. В Python всё является объектами. Даже числа, строки и списки — это объекты, с которыми Python работает в своей внутренней памяти. Понимание этой идеи — ключ к правильному использованию Python.

Мы рассмотрим, как Python хранит данные в переменных, какие типы данных существуют, и как можно манипулировать данными с помощью выражений.

Chatgpt image 5 дек. 2025 г., 17 25 54

Переменные: как Python управляет данными

Переменная в Python — это не просто контейнер, в который мы кладём данные. Это ссылка на объект в памяти. Когда мы создаём переменную, она просто указывает на объект. Важно помнить, что сами данные в Python — это объекты, и переменные являются связями между именами и этими объектами.

Пример 1: числа как объекты

x = 10

Здесь переменная x указывает на объект, представляющий число 10 в памяти. Когда вы изменяете значение переменной:

x = 20

Python просто создаёт новый объект, представляющий число 20, и связывает его с переменной x. Объект 10 остаётся в памяти, но x больше не ссылается на него.

Пример 2: строки как объекты

name = "Alice"

Здесь переменная name указывает на строковый объект "Alice". Строки — это неизменяемые объекты (immutable), и когда мы делаем следующее:

name = "Bob"

Python создаёт новый объект, представляющий строку "Bob", и связывает его с переменной name. Старый объект "Alice" остаётся в памяти, если на него не указывает другая переменная.

Типы данных: что это за объекты?

Каждое значение в Python — это объект, и у каждого объекта есть свой тип. Python сам решает, какого типа будет объект, исходя из того, что мы с ним делаем.

Целые числа (int)

Целые числа — это объекты, представляющие целые значения.

x = 10

При этом важно понимать, что в Python нет фиксированной «коробки» для целых чисел. Они просто объекты, и Python автоматически создаёт их и управляет памятью для них.

Числа с плавающей точкой (float)

Числа с плавающей точкой в Python также представляют объекты. Это числа, которые могут содержать дробную часть.

price = 12.99

При работе с float важно учитывать погрешности, связанные с хранением этих чисел в памяти. Например, операция:

0.1 + 0.2

может дать результат, близкий к 0.30000000000000004, из-за особенностей представления дробных чисел в компьютере. Чтобы избежать таких проблем, можно округлять результат:

round(0.1 + 0.2, 2)  # 0.3

Строки (str)

Строки в Python — это неизменяемые объекты. Когда мы создаём строку, Python создаёт объект, представляющий последовательность символов. Пример:

greeting = "Hello, world!"

Важно понимать, что строки нельзя изменить после их создания. Если вы попытаетесь изменить строку, на самом деле Python создаст новый объект строки:

greeting = "Hello"
greeting += ", world!"  # создаётся новый объект строки

Логические значения (bool)

Логические значения — это объекты, которые могут быть только двух типов: True или False. Эти объекты часто используются для проверки условий.

is_valid = True
is_complete = False

Логические значения являются результатом выполнения операций сравнения:

x = 10
y = 20
is_greater = x < y  # True

Отсутствие значения (None)

None — это специальный объект, который используется для обозначения отсутствия значения. Это важно, когда мы хотим указать, что переменная не имеет значения.

result = None

Проверка на None производится с помощью оператора is:

if result is None:
    print("Нет данных")

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

📢 Подписывайтесь на наш Telegram-канал.

Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.

👉 https://t.me/codelab_channel

В Python всё, что мы делаем с данными, — это выражения. Выражение — это последовательность операций, которая вычисляет результат. В Python выражения могут быть простыми, например, арифметическими, или сложными, включающими несколько шагов.

Арифметические выражения

Простые арифметические операции:

x = 5
y = 3
z = x + y  # сложение

Но Python может делать гораздо больше, например, целочисленное деление:

result = x // y  # целочисленное деление

Сравнение

Когда мы сравниваем два объекта, Python возвращает логическое значение (True или False).

x = 10
y = 5
print(x > y)  # True

Можно также использовать операторы ==, !=, <, >, <=, >=, чтобы проверять, как два объекта соотносятся друг с другом.

Логические операторы

Часто в коде необходимо комбинировать условия, используя логические операторы and, or, и not.

is_raining = True
is_sunny = False

if is_raining and not is_sunny:
    print("Возьмите зонт!")

Здесь мы проверяем два условия: идёт ли дождь и не светит ли солнце. Если оба условия выполняются, выводим сообщение.

Преобразование типов: Python не гадалка

Python не будет угадывать, какой тип вы хотите использовать. Если вы хотите преобразовать данные, вам нужно сделать это вручную.

Строка в число

Часто нам нужно работать с числовыми значениями, полученными от пользователя, а input() всегда возвращает строку. Чтобы использовать строку как число, её нужно преобразовать:

x = input("Введите число: ")
x = int(x)

Если пользователь вводит не число, программа упадёт с ошибкой, и это нужно учесть в реальных приложениях.

Число в строку

Если вы хотите комбинировать числа и строки, нужно явно преобразовать числа в строки:

x = 10
message = "Значение x: " + str(x)

Можно использовать f-строки для удобства:

message = f"Значение x: {x}"

Преобразование между int и float

x = 10.7
print(int(x))  # 10, отбрасывает дробную часть
print(round(x))  # 11, округляет

Ошибки и ловушки

Одной из самых частых ошибок новичков является попытка сравнить строку с числом:

x = input("Введите число: ")  # строка
if x > 10:  # ошибка
    print("Число больше 10")

Python не умеет автоматически преобразовывать строку в число. Нужно явно выполнить преобразование:

x = int(input("Введите число: "))
if x > 10:
    print("Число больше 10")

Пример: планирование бюджета поездки

Напишем небольшой скрипт, который поможет рассчитать общий бюджет поездки. Нам нужно вычислить, сколько мы потратим на отель, еду и билеты.

days = int(input("Сколько дней поездка? "))
hotel_per_day = float(input("Сколько стоит отель в день? "))
food_per_day = float(input("Сколько тратите на еду в день? "))
tickets = float(input("Сколько стоят билеты туда-обратно? "))

hotel_total = days * hotel_per_day
food_total = days * food_per_day
total = hotel_total + food_total + tickets

print()
print(f"Отель: {hotel_total:.2f}")
print(f"Еда: {food_total:.2f}")
print(f"Билеты: {tickets:.2f}")
print(f"Итого: {total:.2f}")

Заключение

  • В Python переменные — это ссылки на объекты, а не просто ячейки памяти.
  • Всё в Python — это объекты, включая числа, строки, списки и другие типы.
  • Чтобы правильно работать с данными, нужно понимать типы и преобразования.
  • Выражения в Python — это основа, с помощью которой мы вычисляем и получаем новые значения.

Практика

Сделайте одно из следующих упражнений:

Конвертер единиц

Напишите программу, которая спрашивает количество километров и выводит соответствующее количество миль (1 км ≈ 0.621371 мили).

Проверка бюджета

Напишите программу, которая принимает цены на товары и проверяет, хватит ли у вас денег для их покупки.

Чаевые

Напишите программу, которая рассчитывает сумму чаевых на основе введённой суммы счёта и процента.

В следующей статье мы перейдём к условиям и ветвлениям. Это следующий шаг в развитии программы, потому что она начнёт принимать решения.