Мы уже знаем, что переменные позволяют хранить и переиспользовать данные. Но они также помогают упрощать вычисления — как математические, так и строковые. Рассмотрим это на примерах.
Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро → доллары → юани. Так часто работают банки при оплате покупок за рубежом.
Допустим, курс: 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
Теперь переведем доллары в юани. Допустим, курс: 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 видит переменную, он подставляет её значение, а затем выполняет вычисления.
Напишите программу, которая берет исходное количество евро, записанное в переменную euros_count
, переводит евро в доллары и выводит на экран. Затем полученное значение переводит в юани и выводит на новой строчке.
Пример вывода для 100 евро:
125.0
863.75
Считаем, что:
Команда проекта находится в телеграм-сообществе по ссылке https://ttttt.me/HexletLearningBot. Там можно задать любой вопрос и повлиять на проект
Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник". Как правильно задать вопрос:
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества
Привет! Я Тота и моя задача помочь в обучении. Чтобы активировать меня, нужно зарегистрироваться или залогиниться, если у вас уже есть аккаунт
Ваше упражнение проверяется по этим тестам
1from hexlet.test import expect_output
2
3
4def test(capsys):
5 expected = "125.0\n863.75"
6 expect_output(capsys, expected)
7
Решение учителя откроется через: