Языки программирования

Python числа: отображение

Из предыдущего урока мы поняли, что, для точных подсчетов, в своих программах необходимо использовать модуль Decimal(). Кроме того, мы знаем, что иногда числа в Python бывают с длинными хвостами: 34.234234677890. Их необходимо обрабатывать перед выводом чтобы не пугать людей.

Представьте, что вы кассир. Перед вами стоит клиент на кассе, и после пробитого товара компьютер вывел вам сумму, которую необходимо взять с клиента: 234.79687578934$. Я бы, наверное, взял топор и просто шарахнул пару раз по этой машине, которая так считает. А вся суть, всего лишь, в одной единственной ошибке программиста, который плохо изучал языки программирования и не обработал вывод суммы с округлением до десятых частей.

Ранее мы знакомились со срезами в строках, которые позволяют укорачивать длину строки. К примеру, если наше число является строкой, то конечно можно сделать просто вот так: print('234.79687578934'[:6]) и получить 234.79. Но, если у нас уже будет сумма другая, к примеру, 34.32423444, то придется и срез менять с [:6] на [:4]. В общем, такой принцип совершенно не подходит для работы с цифрами.

Рассмотрим следующий пример: print(1/3), в результате мы получим 0.3333333333333333. Уроком ранее мы изучили функцию округления round(). Так почему нам ее не использовать? Пробуем: print(round(1/3)). В итоге получаем 0: round() просто округлил все к нулю. Это не тот результат, который мы ожидали в данном случае.

Итак, из числа рекомендуемых мною книг, открываем «Изучаем Python» Марка Лутца на 164 странице, глава «Числа в Python: отображение». В данной главе для новичков слишком много запутанной информации, непонятных алгоритмов и абракадабр. На самом деле, все намного проще. 

Вам необходимо запомнить всего лишь одну конструкцию:

Как видите, все достаточно легко. В следующем уроке мы напишем интерактивный сценарий, где будем получать от пользователя введенные данные в строчном формате, а затем преобразовывать их в Python числа, после чего их обрабатывать.