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. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x