Python
Как в Python вывести через print название переменной и ее значение
Если нужно вывести название переменной и ее значение, самый понятный способ — написать название руками в строке и подставить значение через f-строку. Python обычно не хранит «человеческое имя переменной» как отдельную надежную сущность, поэтому в обычном коде имя пишут явно
age = 25
print(f"age = {age}")
Вывод
age = 25
Это лучший вариант для новичка: он простой, читаемый и не пытается делать магию там, где она не нужна
Быстрый способ для отладки: f'{name=}’
В Python 3.8+ есть удобный синтаксис для отладочного вывода
age = 25
name = "Динар"
print(f"{age=}")
print(f"{name=}")
Вывод
age=25
name='Динар'
Такой формат хорош, когда вы быстро проверяете значения в коде. Он сам показывает выражение слева и результат справа. Для красивого пользовательского вывода лучше писать подпись руками
print(f"Возраст: {age}")
Почему Python не всегда может узнать имя переменной
Один и тот же объект может иметь несколько имен. Например, две переменные могут ссылаться на одно и то же значение, и Python не обязан выбирать, какое имя считать главным
first = [1, 2, 3]
second = first
print(first)
print(second)
Обе переменные указывают на один список. Если пытаться автоматически получить «имя объекта», возникает вопрос: это first или second? Поэтому в нормальном коде имя для вывода задают явно
Как вывести несколько переменных
Через f-строку
name = "Динар"
age = 25
city = "Казань"
print(f"name = {name}, age = {age}, city = {city}")
Или через отладочный синтаксис
print(f"{name=}, {age=}, {city=}")
Для учебного кода второй вариант очень удобен: он быстро показывает, что лежит в переменных, и не требует писать подписи отдельно
Как сделать красивый вывод
Для пользователя лучше не показывать техническое имя переменной, а писать нормальную подпись
price = 1490
count = 3
print(f"Цена: {price}")
print(f"Количество: {count}")
print(f"Итого: {price * count}")
Вывод
Цена: 1490
Количество: 3
Итого: 4470
Техническое имя price понятно программисту, но пользователю приятнее видеть «Цена». Поэтому различайте отладочный вывод для себя и нормальный вывод для человека
Можно ли получить имя переменной через globals()
Технически можно искать переменную в globals() или locals(), но для новичка это почти всегда лишнее и хрупкое решение. Такой код легко ошибается, если несколько имен ссылаются на одно значение, а еще он плохо читается
Пример только для понимания, не как рекомендация
value = 10
for name, obj in globals().items():
if obj is value:
print(name, obj)
В реальных учебных задачах вместо этого используйте print(f"value = {value}") или print(f"{value=}")
Как вывести название ключа в словаре
Если у вас не переменные, а словарь, задача решается красиво: ключ уже является названием
user = {
"name": "Динар",
"age": 25,
"city": "Казань",
}
for key, value in user.items():
print(f"{key} = {value}")
Вывод
name = Динар
age = 25
city = Казань
Если вам часто нужно хранить пары «название — значение», словарь обычно лучше, чем попытки вытаскивать имена переменных из кода
Мини-задача
Создайте три переменные: цена, скидка и итоговая цена. Выведите их в консоль так, чтобы было понятно, где какое значение
price = 1000
discount = 15
final_price = price - price * discount / 100
print(f"{price=}")
print(f"{discount=}")
print(f"{final_price=}")
Потом сделайте пользовательский вариант
print(f"Цена: {price}")
print(f"Скидка: {discount}%")
print(f"Итоговая цена: {final_price}")
Так вы увидите разницу между отладочным и человекочитаемым выводом
Частые ошибки
print(age) выводит только 25
Так и должно быть. print(age) выводит значение переменной, а не ее имя. Если хотите подпись, добавьте ее сами
print(f"age = {age}")
f'{age=}’ не работает
Проверьте версию Python. Такой синтаксис появился в Python 3.8. Если версия старее, используйте обычную f-строку
print(f"age = {age}")
Хочу вывести имя переменной автоматически
Скорее всего, вам это не нужно. Если задача учебная или отладочная, используйте f'{value=}'. Если задача пользовательская, пишите понятную подпись руками
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как вывести словарь без скобок в Python: пары ключ-значение, строки и форматирование
- Как перенести строку в Python: \\n, print и длинные строки
- Face recognition Python: как установить и что делать при ошибках dlib
- Pandas и Matplotlib с Python: основы анализа данных