Переменные в Python: основа программирования для начинающих
Для кого эта статья:
- Новички в программировании
- Студенты курсов по Python
Люди, желающие углубить свои знания в программировании на Python
Переменные в Python — тот фундамент, без которого не построить ни один серьёзный код. Представьте, что вы пытаетесь запомнить телефонные номера всех своих друзей без записной книжки — практически невыполнимая задача! Переменные работают как такая "цифровая записная книжка", позволяя хранить и манипулировать данными без необходимости помнить их точные значения. Если вы только начинаете свой путь в программировании, понимание принципов работы с переменными откроет дверь к созданию действительно полезных программ. 🐍
Осваивая переменные в Python, вы делаете первый шаг к профессиональному программированию. На курсе Обучение Python-разработке от Skypro вы не просто изучите синтаксис, но научитесь мыслить как разработчик — решать практические задачи, создавать эффективные алгоритмы и писать чистый код. Вместо сухой теории вас ждут реальные проекты под руководством действующих разработчиков, которые помогут превратить знание о переменных в профессиональные навыки.
Что такое переменные в Python и зачем они нужны
Переменная в Python — это именованное место в памяти компьютера, которое хранит данные. Представьте её как коробку с этикеткой: вы можете положить внутрь практически любой объект, а потом легко найти его по названию.
В отличие от многих других языков программирования, в Python не нужно заранее объявлять тип переменной — интерпретатор определяет его автоматически на основе присвоенного значения. Это делает код более гибким и понятным, особенно для новичков. 🔄
Михаил Петров, Python-разработчик с 8-летним стажем
Когда я только начинал изучать программирование, меня смущало, зачем вообще нужны переменные. Помню свой первый код — калькулятор, где я пытался выполнять все операции напрямую, без сохранения промежуточных значений. Программа работала, но стала абсолютно нечитаемой, когда я добавил возможность вычисления процентов и степеней.
Всё изменилось, когда я понял суть переменных. Вместо:
PythonСкопировать кодprint((15 + 27) * 3 – 42)Я начал писать:
PythonСкопировать кодfirst_number = 15 second_number = 27 multiplier = 3 constant = 42 result = (first_number + second_number) * multiplier – constant print(result)Теперь мой код мог "рассказать историю" о том, что в нём происходит. А когда требовалось что-то изменить, я точно знал, где искать нужное значение.
Основные причины, почему переменные критически важны в программировании:
- Повторное использование данных — записав значение один раз, вы можете использовать его многократно
- Читаемость кода — осмысленные имена переменных делают программу понятнее
- Изменяемость — значения можно менять в процессе выполнения программы
- Упрощение сложных выражений — разбивая сложные вычисления на шаги с промежуточными переменными
- Экономия памяти — при правильном использовании переменных уменьшается дублирование данных
| Без переменных | С переменными |
|---|---|
| print("Привет, Анна!")<br>print("Анна, как твои дела?")<br>print("До встречи, Анна!") | name = "Анна"<br>print(f"Привет, {name}!")<br>print(f"{name}, как твои дела?")<br>print(f"До встречи, {name}!") |
| ❌ При изменении имени придётся менять в трёх местах | ✅ Изменение имени требует правки только в одном месте |
Переменные в Python позволяют выражать идеи и алгоритмы на более высоком уровне абстракции, сосредотачиваясь на логике программы, а не на технических деталях хранения данных. Это особенно важно для новичков, которым необходимо сначала освоить фундаментальные концепции программирования.

Объявление переменных в Python: синтаксис и правила
В Python создание переменной происходит через операцию присваивания, которая использует знак равенства (=). Слева от знака равенства указывается имя переменной, а справа — значение, которое вы хотите в ней сохранить. 📝
Базовый синтаксис объявления переменной:
имя_переменной = значение
Несколько примеров объявления переменных разных типов:
# Целое число
age = 25
# Строка
name = "Алексей"
# Число с плавающей точкой
height = 1.85
# Логическое значение
is_student = True
# Список
hobbies = ["программирование", "чтение", "плавание"]
В отличие от языков со статической типизацией (таких как Java или C++), Python не требует явного указания типа переменной при её объявлении. Тип определяется автоматически в момент присваивания значения.
Важные особенности объявления переменных в Python:
- Отсутствие ключевых слов — не нужно использовать специальные слова (например, var, let, const) перед именем переменной
- Динамическая типизация — одна и та же переменная может хранить значения разных типов в разные моменты выполнения программы
- Автоматическое создание — переменная создаётся в момент первого присваивания, предварительного объявления не требуется
- Множественное присваивание — можно присваивать значения нескольким переменным одновременно
Примеры множественного присваивания:
# Присваивание одного значения нескольким переменным
x = y = z = 0
# Присваивание разных значений разным переменным
a, b, c = 1, 2, 3
# Обмен значениями (без использования временной переменной)
a, b = b, a
Анна Светлова, преподаватель программирования
На моих курсах для начинающих я всегда вижу одну и ту же ошибку — студенты пытаются переносить правила из других языков в Python. Особенно это касается объявления переменных.
Недавно на занятии новичок настойчиво пытался написать:
PythonСкопировать кодint age = 30; string name = "Иван";После того, как я объяснила принципы динамической типизации в Python, он не мог поверить, что можно просто написать:
PythonСкопировать кодage = 30 name = "Иван""Но как же компьютер поймёт, что это за тип?" — спросил он с недоверием. Чтобы продемонстрировать красоту Python, мы написали простую программу:
PythonСкопировать кодvariable = 10 print(type(variable)) # <class 'int'> variable = "текст" print(type(variable)) # <class 'str'> variable = [1, 2, 3] print(type(variable)) # <class 'list'>Его глаза загорелись, когда он понял, насколько это упрощает процесс написания кода и позволяет сосредоточиться на алгоритме, а не на технических деталях.
| Операция | Пример | Объяснение |
|---|---|---|
| Базовое присваивание | x = 10 | Переменной x присваивается значение 10 |
| Присваивание с сложением | x += 5 | Эквивалентно x = x + 5 |
| Присваивание с вычитанием | x -= 3 | Эквивалентно x = x – 3 |
| Присваивание с умножением | x *= 2 | Эквивалентно x = x * 2 |
| Присваивание с делением | x /= 4 | Эквивалентно x = x / 4 |
Помните, что в Python переменная — это всего лишь ссылка на объект в памяти. Когда вы создаёте переменную и присваиваете ей значение, вы фактически создаёте связь между именем переменной и объектом данных, на который она указывает. Это фундаментальная концепция, которая влияет на многие аспекты работы с данными в Python. 🔗
Типизация переменных в Python: основные типы данных
Python — язык с динамической типизацией, что означает возможность изменения типа переменной в процессе выполнения программы. Однако понимание основных типов данных критично для эффективного программирования. Рассмотрим ключевые типы, с которыми вы будете работать. 🧩
Числовые типы:
# Целое число (integer)
count = 42
# Число с плавающей точкой (float)
temperature = 36.6
# Комплексное число (complex)
complex_number = 3 + 4j
Строковые и логические типы:
# Строка (string)
greeting = "Привет, мир!"
multiline_text = """Это
многострочный
текст"""
# Логический тип (boolean)
is_active = True
has_permission = False
Составные типы данных:
# Список (list) – упорядоченная изменяемая коллекция
fruits = ["яблоко", "банан", "груша"]
mixed_list = [1, "два", 3.0, True]
# Кортеж (tuple) – упорядоченная неизменяемая коллекция
coordinates = (55.7558, 37.6173)
# Словарь (dict) – коллекция пар ключ-значение
user = {"name": "Иван", "age": 30, "is_admin": False}
# Множество (set) – неупорядоченная коллекция уникальных элементов
unique_numbers = {1, 2, 3, 4, 5}
Специальные типы:
# None – специальное значение, обозначающее отсутствие значения
result = None
Для определения типа переменной используйте встроенную функцию type():
name = "Python"
print(type(name)) # <class 'str'>
age = 30
print(type(age)) # <class 'int'>
Одно из преимуществ Python — простота преобразования (конвертации) между типами данных:
int()— преобразование к целому числуfloat()— преобразование к числу с плавающей точкойstr()— преобразование к строкеbool()— преобразование к логическому типуlist(),tuple(),set(),dict()— преобразования к соответствующим коллекциям
Примеры преобразования типов:
# Строка в число
age_string = "30"
age_number = int(age_string) # 30 (int)
# Число в строку
count = 42
count_string = str(count) # "42" (str)
# Строка в список
text = "Python"
char_list = list(text) # ['P', 'y', 't', 'h', 'o', 'n'] (list)
# Различные преобразования к bool
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("0")) # True
print(bool([])) # False
print(bool(None)) # False
| Тип | Изменяемый | Упорядоченный | Индексируемый | Может содержать дубликаты |
|---|---|---|---|---|
| list | ✅ | ✅ | ✅ | ✅ |
| tuple | ❌ | ✅ | ✅ | ✅ |
| dict | ✅ | ✅ (с Python 3.7) | ✅ (по ключу) | ❌ (ключи уникальны) |
| set | ✅ | ❌ | ❌ | ❌ |
| str | ❌ | ✅ | ✅ | ✅ |
Понимание типов данных в Python имеет решающее значение при решении практических задач программирования. Например, если вы пытаетесь сложить строку и число, Python выдаст ошибку TypeError, потому что эти операции не определены для разных типов:
age = 30
message = "Возраст: " + age # TypeError: can only concatenate str (not "int") to str
# Правильное решение:
message = "Возраст: " + str(age)
# Или с использованием f-строк (рекомендуемый способ):
message = f"Возраст: {age}"
Динамическая типизация Python делает код более гибким, но требует внимания к типам данных, особенно при работе со сложными структурами данных и функциями. Использование правильных типов данных для конкретных задач повышает эффективность и читаемость вашего кода. 📊
Правила именования переменных Python: стандарты и запреты
Выбор правильных имён для переменных — одно из важнейших умений программиста. Хорошие имена делают код самодокументированным и легко читаемым, в то время как плохие приводят к путанице и ошибкам. В Python существуют как технические ограничения, так и стилистические соглашения по именованию переменных. 📋
Технические правила именования переменных:
- Имена переменных могут состоять из букв (a-z, A-Z), цифр (0-9) и символа подчёркивания (_)
- Имя должно начинаться с буквы или подчёркивания, но не с цифры
- Имена чувствительны к регистру:
age,AgeиAGE— это три разные переменные - Нельзя использовать зарезервированные слова (ключевые слова) Python
Зарезервированные слова Python, которые нельзя использовать как имена переменных:
False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise
Стилистические соглашения по PEP 8 (Python Enhancement Proposal):
- snake_case — стандартный стиль для переменных и функций, где слова разделяются подчёркиванием (
user_name,total_sum) - UPPERSNAKECASE — для констант (
MAX_VALUE,PI) - CapitalizedWords (PascalCase) — для имён классов (
UserProfile,DatabaseConnection) - Используйте одиночное подчёркивание в начале для внутренних переменных (
_internal_variable) - Используйте двойное подчёркивание в начале для "сильно приватных" атрибутов (
__very_private)
Примеры хороших имён переменных:
user_age = 25
is_active = True
total_items = get_count()
MAX_ATTEMPTS = 5
Примеры плохих имён переменных:
a = 25 # Неинформативное название
UserAge = 25 # Неправильный стиль для переменной (использует PascalCase)
user-age = 25 # Недопустимый символ "-"
1st_place = "Золото" # Начинается с цифры
if = True # Зарезервированное слово
Выбирайте имена переменных, которые отражают их назначение и содержимое. Хорошее имя должно отвечать на вопрос "что хранится в этой переменной?", а не "для чего эта переменная используется?".
Сравните эти два подхода:
# Плохо: неясно, что содержится в переменной
x = 3600
# Хорошо: имя ясно указывает на содержимое
seconds_per_hour = 3600
Важно также соблюдать единообразие стиля в рамках одного проекта — это значительно улучшает читаемость кода. Если вы работаете с существующей кодовой базой, следуйте уже принятым в ней соглашениям.
Избегайте чрезмерно длинных имён, но и не жертвуйте ясностью ради краткости:
# Слишком длинное
the_number_of_active_users_in_the_current_month = 42
# Слишком короткое
n = 42
# Оптимальное
monthly_active_users = 42
Работа с переменными: практические задачи с кодом
Теория без практики мало чего стоит в программировании. Давайте рассмотрим несколько практических примеров работы с переменными, которые помогут закрепить полученные знания и показать, как применять их в реальных задачах. 💻
Задача 1: Обмен значениями переменных
В большинстве языков программирования для обмена значениями между двумя переменными требуется использовать временную переменную. Python предлагает элегантное решение:
# Классический способ (через временную переменную)
a = 5
b = 10
temp = a
a = b
b = temp
print(f"a = {a}, b = {b}") # a = 10, b = 5
# Python-способ (множественное присваивание)
a = 5
b = 10
a, b = b, a
print(f"a = {a}, b = {b}") # a = 10, b = 5
Задача 2: Вычисление площади и периметра прямоугольника
# Входные данные
length = 10 # длина прямоугольника
width = 5 # ширина прямоугольника
# Вычисления
area = length * width
perimeter = 2 * (length + width)
# Вывод результатов
print(f"Площадь прямоугольника: {area}")
print(f"Периметр прямоугольника: {perimeter}")
Задача 3: Конвертация температуры из Цельсия в Фаренгейт и Кельвин
# Входная температура в градусах Цельсия
celsius = 25
# Конвертация в Фаренгейты: F = C * 9/5 + 32
fahrenheit = celsius * 9/5 + 32
# Конвертация в Кельвины: K = C + 273.15
kelvin = celsius + 273.15
# Вывод результатов
print(f"{celsius}°C = {fahrenheit}°F")
print(f"{celsius}°C = {kelvin}K")
Задача 4: Работа со строками и форматирование вывода
# Информация о пользователе
first_name = "Иван"
last_name = "Петров"
age = 30
profession = "программист"
# Создание форматированной строки
# Старый способ с format()
message1 = "Пользователь {0} {1}, {2} лет, работает как {3}".format(
first_name, last_name, age, profession)
# Современный способ с f-строками (рекомендуется)
message2 = f"Пользователь {first_name} {last_name}, {age} лет, работает как {profession}"
print(message1)
print(message2)
Задача 5: Вычисление среднего значения и суммы чисел
# Набор чисел
numbers = [10, 15, 20, 25, 30]
# Вычисление суммы
sum_of_numbers = sum(numbers)
# Вычисление среднего значения
average = sum_of_numbers / len(numbers)
print(f"Числа: {numbers}")
print(f"Сумма: {sum_of_numbers}")
print(f"Среднее: {average}")
Задача 6: Работа с пользовательским вводом
Одно из преимуществ переменных — возможность сохранять данные, полученные от пользователя:
# Получение данных от пользователя
name = input("Введите ваше имя: ")
age_string = input("Введите ваш возраст: ")
# Преобразование строки в число
age = int(age_string)
# Вычисление года рождения (приблизительно)
import datetime
current_year = datetime.datetime.now().year
birth_year = current_year – age
# Вывод информации
print(f"Привет, {name}!")
print(f"Вам примерно {age} лет, вы родились около {birth_year} года.")
Задача 7: Использование условных выражений с переменными
# Проверка возраста для доступа к контенту
user_age = 17
minimum_age = 18
if user_age >= minimum_age:
access_status = "разрешен"
else:
access_status = "запрещен"
years_until_access = minimum_age – user_age
print(f"Доступ {access_status}.")
if years_until_access > 0:
print(f"Вернитесь через {years_until_access} год(а/лет).")
Важно помнить, что переменные в Python — это инструменты, которые помогают управлять данными и структурировать код. Правильное использование переменных делает программы понятнее, эффективнее и проще в сопровождении. 🔧
Практикуйтесь с этими примерами, модифицируйте их, создавайте собственные программы. Чем больше вы экспериментируете с переменными и типами данных, тем лучше понимаете фундаментальные принципы программирования на Python.
Овладев искусством работы с переменными в Python, вы заложили надёжный фундамент для дальнейшего роста как программист. Теперь любая задача становится решаемой — просто разбейте её на маленькие шаги, используя переменные для хранения промежуточных результатов. Помните: хороший код рассказывает историю, и переменные — ключевые персонажи этого повествования. Их имена должны быть говорящими, а назначение — понятным. С этими знаниями вы готовы двигаться дальше — к функциям, условиям и циклам, которые вместе с переменными составляют ядро Python-программирования.