Python: Выражения в определениях

Мы уже знаем, что переменные позволяют хранить и переиспользовать данные. Но они также помогают упрощать вычисления — как математические, так и строковые. Рассмотрим это на примерах.

💱 Конвертация валют через промежуточную валюту

Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро → доллары → юани. Так часто работают банки при оплате покупок за рубежом.

Шаг 1. Евро → Доллары

Допустим, курс: 1 евро = 1.25 доллара. Хотим перевести 50 евро:

dollars_count = 50 * 1.25
print(dollars_count)  # => 62.5

В этой строке 50 * 1.25 — это выражение, а dollars_count — переменная, в которую записывается результат. Python сначала вычисляет выражение, а уже потом сохраняет результат в переменную.

Интерпретатору всё равно, как записано выражение:

dollars_count = 62.5

или

dollars_count = 50 * 1.25

Результат будет один и тот же.

📘 Что такое выражение?

Выражение — это комбинация данных и операций, из которой можно получить значение. Примеры:

62.5             # 62.5
50 * 1.25        # 62.5
120 / 10 * 2     # 24.0
int('100')       # 100

'hello'          # hello
'Good' + 'will'  # Goodwill

Обратите внимание: строки — это тоже выражения. А операция + со строками называется конкатенацией — она "склеивает" строки в одну.

Если вы понимаете, что перед вами выражение, вы знаете: Python сначала его вычислит, а уже потом продолжит выполнение программы. Это особенно важно, когда выражения становятся сложными и включают переменные, функции и даже другие выражения внутри.

✨ Пример со строками

Подумайте, сработает ли такой код:

who = "dragon's " + 'mother'
print(who)

Ответ: да, всё отлично сработает. На экран выведется строка: dragon's mother

Шаг 2. Доллары → Юани

Теперь переведем доллары в юани. Допустим, курс: 1 доллар = 6.91 юаней.

yuans_per_dollar = 6.91
dollars_count = 50 * 1.25              # 62.5
yuans_count = dollars_count * yuans_per_dollar  # 431.875

print(yuans_count)

Переменные можно использовать внутри других выражений. Когда Python видит переменную, он подставляет её значение, а затем выполняет вычисления.

📌 Что нужно запомнить

  • Выражения могут быть числовыми, строковыми и даже смешанными (если правильно использовать преобразования).
  • Переменные можно использовать внутри других выражений. Python подставит их значения и выполнит нужные вычисления.
  • Все программы состоят из комбинаций выражений — именно они дают результат.

Задание

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

Пример вывода для 100 евро:

125.0
863.75

Считаем, что:

  • 1 евро = 1.25 долларов
  • 1 доллар = 6.91 юаней

Полезное

Определения

Переменная
способ сохранить информацию и дать ей имя для последующего использования в коде.
Как с вами связаться? 🙃

Команда проекта находится в телеграм-сообществе по ссылке https://ttttt.me/HexletLearningBot. Там можно задать любой вопрос и повлиять на проект

Упражнение не проходит проверку — что делать? 😶

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник". Как правильно задать вопрос:

В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

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

Прочитал урок — ничего не понятно 🙄

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

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются

Привет! Я Тота и моя задача помочь в обучении. Чтобы активировать меня, нужно зарегистрироваться или залогиниться, если у вас уже есть аккаунт

Loading...

Ваше упражнение проверяется по этим тестам

1from hexlet.test import expect_output
2
3
4def test(capsys):
5    expected = "125.0\n863.75"
6    expect_output(capsys, expected)
7

Решение учителя откроется через:

20:00
waiting_clock