Как оставить 2 знака после запятой в python
Перейти к содержимому

Как оставить 2 знака после запятой в python

Python: рецепты форматирования строк

Часто, когда возникает необходимость в форматировании строк, я забываю некоторые нюансы. В статье ниже рассмотрены всевозможные методы применения Python str.format() и его устаревшего аналога %.

Форматирование чисел

В следующей таблице показаны различные способы форматирования чисел с использованием функции str.format() в python, с примерами как для форматирования дробных, так и для целых чисел.

Для запуска примеров используйте print("FORMAT".format(NUMBER)) Таким образом, чтобы получить результат первого примера, вы должны запустить: print("<:. 2f>".format(3.1415926))

Число Формат Результат Примечание
3.1415926 3.14 2 знака после запятой
3.1415926 +3.14 2 знака после запятой со знаком
-1 -1.00 2 знака после запятой со знаком
2.71828 3 Без знаков после запятой
5 05 Заполнение нулями слева (2 знака)
5 5xxx Заполнение нулями справа (4 знака)
10 10xx Заполнение нулями справа (4 знака)
1000000 1,000,000 Форматирование числа с разделителем запятой
0.25 25.00% Форматирование процентов
1000000000 1.00e+09 Обозначение экспоненты
13 13 Выровненный по правому краю (по умолчанию, ширина 10, пустое место заполняется пробельнами символами)
13 13 Выровненный слева (ширина 10)
13 13 Выровненный по центру (ширина 10)

Основы string.format()

Вот пара примеров базовой подстановки строк, вырожение <> является заполнителем для замещаемых переменных. Если формат не указан, он будет вставляться и форматироваться в виде строки.

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

Старый метод ворматирования строк черех %

До python 2.6 способ форматирования строк, как правило, был немного проще, хотя и ограничен количеством аргументов, которые он может получить. Эти методы по-прежнему работают с Python 3.3, но есть скрытые угрозы, которые полностью не одобряют их. [РЕР-3101]

Форматирование числа с плавающей запятой:

Множественные замещения

Недостаточное количество аргументов аргументы

Используя метод более старого формата, я бы часто получал ошибку «TypeError: not enough arguments for format string», потому что я неправильно определил свою замену, сделайте что-то вроде следующего.

Новый форматировщик строк python вы можете использовать пронумерованные параметры, поэтому вам не нужно подсчитывать, сколько у вас есть, по крайней мере, на половине его.

Больше примеров форматирования с функцией .format()

Функция format() предлагает множество дополнительных возможностей и возможностей, вот несколько полезных советов и трюков с использованием .format()

Именованные арргументы

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

Повторное использование одной переменной несколько раз

Используя %, требуется строгий порядок переменных, метод .format() позволяет поместить их в любом порядке, как мы видели выше, и также позволяет повторно их использовать.

Преобразование значений в разные форматы

Вы можете использовать следующие буквы для преобразования числа в свои форматы, decimal, hex, octal, binary

Используем format как функцию

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

Числа с плавающей точкой¶

Десятичные дроби в Python хранятся в формате с плавающей точкой и представлены типом float . Они могут быть записаны несколькими способами:

Конструкция float(x) принимает строку или целое число и возвращает число с плавающей точкой, т.е. объект типа float . Примеры:

Для вывода чисел с плавающей точкой, как и для вывода других объектов, может быть использована функция print :

Также существует способ указать количество выводимых знаков после запятой:

При преобразовании чисел с плавающей точкой в целые дробная часть отбрасывается, округления по арифметическим правилам не выполняется:

Для решения вычислительных задач может быть полезен модуль math из стандартной библиотеки языка Python. Для его использования нужно написать строку import math . Для решения задач нам понадобятся число \(\pi\) и функция извлечения квадратного корня. Примеры их использования:

Задачи¶

Дан диаметр окружности \(d\) . Найти ее длину по формуле \(length = \pi \cdot d\) .

Дано значение температуры \(t\_f\) в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию \(t\_c\) и температура по Фаренгейту \(t\_f\) связаны следующим соотношением:

Найти значение функции \(y = 3x^6 — 6x^2 — 7\) при заданном значении \(x\) .

Даны два неотрицательных числа \(a\) и \(b\) . Найти их среднее геометрическое по формуле \(\sqrt\) .

Даны катеты прямоугольного треугольника \(a\) и \(b\) . Найти его гипотенузу \(c\) и периметр \(p\) :

Найти значение функции \(y = 4(x — 3) ^ 6 — 7(x-3) ^ 3 + 2\) при заданном значении \(x\) .

Дан радиус круга, найти его площадь по формуле \(s = \pi \cdot r ^ 2\) .

Дано значение температуры в градусах Цельсия. Вычислить значение этой же температуры в градусах Фаренгейта. Формулу вывести самостоятельно.

Дан объем данных в мегабайтах. Перевести его в гигабайты и килобайты. Результат вывести с точностю до двух знаков после запятой.

Форматирование строк

Часто форматирование строк связано с их выводом на экран. Однако следует помнить, что на вывод передается уже сформированная строка. Создание строки, то есть вставка в нее данных в заданных форматах, является отдельной операцией. Готовая строка может быть, например, присвоена переменной, а не выводиться сразу на экран.

% — оператор форматирования строки

Оператор % по отношению к строкам выполняет операцию форматирования и вставки таким образом, что объект, стоящий справа от него, встраивается согласно определенным правилам в строку слева от него:

Такой способ форматирования считается старым потому, что заимствован из функции printf языка C, а в Python кроме него появились другие способы вставки данных в «строки-шаблоны». Однако в ряде случаев удобнее использовать оператор % .

Вывод вещественного числа с заданной точностью

Оператор деления / возвращает вещественное число. Если количество знаков после запятой бесконечно, интерпретатор Python выведит его с большим количеством знаков в дробной части:

С помощью оператора форматирования строки ( % ) можно выполнить округление числа до требуемой точности. Например, оставить только два знака после запятой. Для этого внутри строки, то есть в кавычках, записывают комбинацию символов, которая начинается со знака % . Далее ставят точку. Число после точки обозначает количество знаков после запятой. Символ f обозначает вещественный тип данных float .

Обратите внимание, переменная a содержит число с большим количеством знаков в дробной части. Строка ‘1.33’ является результатом выполнения выражения ‘%.2f’ % a . Функции print передается готовая строка ‘1.33’ . Предварительно эту строку можно было бы присвоить отдельной переменной:

С другой стороны, по правую сторону от оператора форматирования строки не обязательно указывать переменную. Чаще здесь записывают непосредственно выражение. При этом берут его в скобки.

Строка, содержащая в себе спецификаторы преобразования, также может содержать обычные символы:

Символ d в формате вставки обозначает целое число (тип int ).

Оператор форматирования строк выполняет округление вещественных чисел, а не простое отбрасывание «лишних» цифр:

Вывод символа

Чтобы получить любой символ из таблицы Unicode, в спецификаторе используют букву c , при этом после знака оператора форматирования указывают код требуемого символа.

Вставка в строку значений словаря через ключи

Вывод данных в поля заданной ширины

Бывает данные надо вывести в виде таблицы. Это значит, что каждый элемент данных выводится в поле определенной ширины, которая измеряется в знакоместах.

Например, вместо подобного вывода:

Для таких случаев в формате вставки элемента данных в строку указывается ширина поля (количество знакомест). Делается это сразу после знака процента.

Знак «минус» заставляет данные выравниваться по левому краю. По умолчанию они выравниваются по правому:

Строковый метод format

Строковый метод format вставляет переданные в него аргументы в строку, к которой применяется. В строке места вставки, или «поля замены», определяются фигурными скобками. Внутри скобок могут указываться индексы или ключи аргументов, переданных в метод format.

В format может передоваться больше аргументов, чем имеется мест вставок в строке. В таком случае оставшиеся аргументы игнорируются.

Вставка значений по ключу:

Вывод атрибутов объекта:

Метод format позволяет задавать ширину поля и выравнивание:

Вывод вещественных чисел:

Форматированные строковые литералы

В последних версиях Python появилась возможность использовать так называемые форматированные строковые литералы (formatted string literals). В отличие от обычных строковых литералов перед f-строками ставится буква f .

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *