Python: Выражения в определениях
Мы уже знаем, что выражения можно составлять из нескольких операций. Но если записать все вычисление в одну длинную строку, код быстро становится трудным для чтения.
Например, вот такая запись работает:
yuans_count = 50 * 1.25 * 6.91
print(yuans_count) # => 431.875Python легко вычислит это выражение. Но человеку читать такой код уже не так удобно. Сразу возникают вопросы:
- Что означает
1.25? - Что означает
6.91? - Где заканчивается один шаг вычисления и начинается следующий?
Чтобы сделать такие вычисления понятнее, переменные можно использовать внутри других выражений. Сначала программа сохраняет промежуточный результат в переменную, а затем подставляет значение этой переменной в следующее вычисление.
Переменные помогают разбивать сложные вычисления на понятные части и сохранять промежуточные результаты.
Конвертация валют через промежуточную валюту
Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро -> доллары -> юани. Так часто работают банки при оплате покупок за рубежом.
Шаг 1. Евро -> Доллары
Допустим, курс: 1 евро = 1.25 доллара. Хотим перевести 50 евро:
dollars_per_euro = 1.25
dollars_count = 50 * dollars_per_euro
print(dollars_count) # => 62.5В этой строке 50 * dollars_per_euro является выражением, а dollars_count представляет собой переменную, в которую записывается результат. Python сначала вычисляет выражение, а уже потом сохраняет результат в переменную.
Интерпретатору все равно, как записано выражение:
dollars_count = 62.5или
dollars_count = 50 * dollars_per_euroРезультат будет один и тот же. Но для человека второй вариант полезнее: по имени dollars_count сразу видно, что на этом шаге мы получили сумму в долларах.
Шаг 2. Доллары -> Юани
Теперь переведем 50 евро в юани, используя доллар как промежуточную валюту. Допустим, курсы валют: 1 доллар = 6.91 юаней, 1 евро = 1.25 долларов.
dollars_per_euro = 1.25
yuans_per_dollar = 6.91
dollars_count = 50 * dollars_per_euro
yuans_count = dollars_count * yuans_per_dollar
print(yuans_count)Этот код длиннее, чем одна строка 50 * 1.25 * 6.91, но читать его проще:
- видно, что
1.25это курс евро к доллару - видно, что
6.91это курс доллара к юаню - видно, что
dollars_countявляется промежуточным результатом
Особенно это станет заметно, если не возвращаться к коду хотя бы неделю. А теперь представьте что в проекте сотни тысяч строк кода. Если бы в таких проектах не было промежуточных переменных и вычислений, в них бы было невозможно разобраться.
Что нужно запомнить
- Если выражение получается слишком длинным, его лучше разбить на несколько шагов.
- Переменные помогают сохранять промежуточные результаты и делают вычисления понятнее.
- Когда переменная используется в выражении, Python подставляет ее значение и продолжает вычисление.
Задание
Напишите программу, которая берет исходное количество евро, записанное в переменную euros_count, переводит евро в доллары и выводит на экран. Затем полученное значение переводит в юани и выводит на новой строчке.
Пример вывода для 100 евро:
125.0
863.75Считаем, что:
- 1 евро = 1.25 долларов
- 1 доллар = 6.91 юаней
Полезное
Python: Выражения в определениях
Мы уже знаем, что выражения можно составлять из нескольких операций. Но если записать все вычисление в одну длинную строку, код быстро становится трудным для чтения.
Например, вот такая запись работает:
yuans_count = 50 * 1.25 * 6.91
print(yuans_count) # => 431.875Python легко вычислит это выражение. Но человеку читать такой код уже не так удобно. Сразу возникают вопросы:
- Что означает
1.25? - Что означает
6.91? - Где заканчивается один шаг вычисления и начинается следующий?
Чтобы сделать такие вычисления понятнее, переменные можно использовать внутри других выражений. Сначала программа сохраняет промежуточный результат в переменную, а затем подставляет значение этой переменной в следующее вычисление.
Переменные помогают разбивать сложные вычисления на понятные части и сохранять промежуточные результаты.
Конвертация валют через промежуточную валюту
Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро -> доллары -> юани. Так часто работают банки при оплате покупок за рубежом.
Шаг 1. Евро -> Доллары
Допустим, курс: 1 евро = 1.25 доллара. Хотим перевести 50 евро:
dollars_per_euro = 1.25
dollars_count = 50 * dollars_per_euro
print(dollars_count) # => 62.5В этой строке 50 * dollars_per_euro является выражением, а dollars_count представляет собой переменную, в которую записывается результат. Python сначала вычисляет выражение, а уже потом сохраняет результат в переменную.
Интерпретатору все равно, как записано выражение:
dollars_count = 62.5или
dollars_count = 50 * dollars_per_euroРезультат будет один и тот же. Но для человека второй вариант полезнее: по имени dollars_count сразу видно, что на этом шаге мы получили сумму в долларах.
Шаг 2. Доллары -> Юани
Теперь переведем 50 евро в юани, используя доллар как промежуточную валюту. Допустим, курсы валют: 1 доллар = 6.91 юаней, 1 евро = 1.25 долларов.
dollars_per_euro = 1.25
yuans_per_dollar = 6.91
dollars_count = 50 * dollars_per_euro
yuans_count = dollars_count * yuans_per_dollar
print(yuans_count)Этот код длиннее, чем одна строка 50 * 1.25 * 6.91, но читать его проще:
- видно, что
1.25это курс евро к доллару - видно, что
6.91это курс доллара к юаню - видно, что
dollars_countявляется промежуточным результатом
Особенно это станет заметно, если не возвращаться к коду хотя бы неделю. А теперь представьте что в проекте сотни тысяч строк кода. Если бы в таких проектах не было промежуточных переменных и вычислений, в них бы было невозможно разобраться.
Что нужно запомнить
- Если выражение получается слишком длинным, его лучше разбить на несколько шагов.
- Переменные помогают сохранять промежуточные результаты и делают вычисления понятнее.
- Когда переменная используется в выражении, Python подставляет ее значение и продолжает вычисление.
Задание
Напишите программу, которая берет исходное количество евро, записанное в переменную euros_count, переводит евро в доллары и выводит на экран. Затем полученное значение переводит в юани и выводит на новой строчке.
Пример вывода для 100 евро:
125.0
863.75Считаем, что:
- 1 евро = 1.25 долларов
- 1 доллар = 6.91 юаней
Полезное
Ваше упражнение проверяется по этим тестам
import importlib
def test(capsys):
expected = "125.0\n863.75"
expect_output(capsys, expected)
def expect_output(capsys, expected):
importlib.import_module('solution')
out, _err = capsys.readouterr()
actual = out.strip('\n')
with capsys.disabled():
print('\n')
print(out)
assert actual == expectedРешение учителя откроется через:
20:00
