Понимание десятичного форматирования Python 3 — :.0f против :.1f

Мы все стремимся добиться идеальных результатов и ответов в нашем коде. У каждого программиста есть постоянная мысль об отображении огромных результатов в удобочитаемых для пользователя форматах. Чтобы убедиться, что наши пользователи могут читать выходные данные, нам нужно отформатировать их, чтобы они выглядели разборчиво.
К счастью для нас, программистов, этот процесс упростился благодаря функции форматирования во многих языках программирования. В Python при печати вывода мы можем указать поля формата и изменить их по своему усмотрению. Например, если мы хотим напечатать только до двух знаков после запятой для отображения квадратного корня из пяти, мы можем сделать это следующим образом:
import math
ans=math.sqrt(5)
print("%.2f",ans)
Форматирование в Python 2 против Python 3
Несмотря на то Питон 3 является преемником Питон 2 и оба они являются просто разными версиями одного и того же языка программирования, между двумя типами Python есть ключевые различия. Начиная с ключевых слов и заканчивая операторами печати, Python сильно изменился с момента своего выпуска.
Когда вы устанавливаете Python 2 в свою систему, некоторые функции Python 3 также устанавливаются, поскольку он поддерживает гораздо больше модулей и библиотек, которые нельзя использовать только с Python 2.
В Python 3 оператор печати, необходимый для отображения вывода, был изменен и стал функцией. В отличие от Python 2, где печать считается оператором. Python также претерпел изменения в том, как он принимает пользовательский ввод. В Python2 объявленные пользователем переменные определялись функцией raw_input(), тогда как теперь, когда мы используем Python 3, функция input() делает то же самое.
Несмотря на значительные изменения в других областях, функция формата и методы печати в основном остались прежними.
Синтаксис Python 3 также проще и гибче, чем Python 2. В настоящее время Python 2 устарел, и теперь можно использовать функцию форматирования в дополнение к функции печати для отображения желаемого вывода.
Понимание форматирования с плавающей запятой в Python 3
Основное различие между :.0f и :.1f в Python заключается в количестве десятичных цифр, отображаемых в выводе. :.0f означает, что требуется только целая часть числа без каких-либо цифр после запятой. И наоборот, :.1f указывает на желание отображать одну цифру после запятой в выводе.
Тип данных float относится к тем числам, которые имеют конечные десятичные разряды в системе счисления с основанием 10. Например, если вы напишите 5, это будет считаться целым числом, но если вы напишете 5.0, оно будет рассматриваться как тип данных с плавающей запятой. Все целые числа могут быть представлены как числа с плавающей запятой, но не все числа с плавающей запятой могут быть представлены как целые числа.
При выполнении сложных научных вычислений нам может не понадобиться, чтобы вывод был длиной 15 знаков после запятой. Это делает его нечитаемым и грязным. Это можно контролировать с помощью метода формата «.nf», где n — количество знаков после запятой, необходимое для отображения.
Например, при попытке разделить число, частное которого может иметь много знаков после запятой, мы можем использовать эту спецификацию формата, чтобы уменьшить количество конечных цифр после запятой, как показано ниже:
first_num = 100
second_num = 3
ans = first_num / second_num
print(f"The answer before formatting is = {ans}")
print(f"The answer after formatting is = {ans:.3f}")
Результат будет:
The answer before formatting is = 33.333333333333336
The answer after formatting is = 33.333

Связанный: Понимание формата печати %.3f в Python.
Разница между :.0f и :.1f в Python
Основное различие между :.0f и :.1f заключается в количестве десятичных цифр, которые должны появиться на экране вывода после запятой. Если мы указываем :.0f, это означает, что нам нужна только целая часть числа и ни одной цифры после запятой. Его также можно использовать в качестве потолочной функции. Если ближайшая цифра после запятой больше или равна 5, целая часть ответа увеличится на 1 (округление вверх), в противном случае целая часть останется такой же и будет отображаться.
Но если мы укажем :.1f, это означает, что мы хотим видеть только одну цифру после запятой в нашем выводе.
Давайте поймем разницу с помощью примера. В приведенном ниже примере мы возьмем два пользовательских ввода, in1 и in2, и оба они должны быть с плавающей запятой. Теперь мы умножим оба этих числа, чтобы найти их произведение. Поскольку произведение двух чисел с плавающей запятой также должно быть числом с плавающей запятой, мы сможем отформатировать количество десятичных цифр после запятой. Сначала мы отформатируем его в :.0f, а затем в :.1f.
i#first input
in1=float(input("Enter first number= "))
#second input
in2=float(input("Enter second number= "))
#computing the product
ans=in1 * in2
#first displaying without formatting
print("The answer before formatting is= ",ans)
#displaying after formatting upto no decimal point digits(ceiling)
print("The answer after formatting without digits after decimal point is={:.0f}".format(ans))
#formatting upto only the first decimal digit.
print("The answer after formatting upto one decimal point is={:.1f}".format(ans))
Вы сможете понять разницу между двумя командами, когда увидите вывод.
Enter first number= 5.789
Enter second number= 15.444
The answer before formatting is= 89.405316
The answer after formatting without digits after decimal point is=89
The answer after formatting upto one decimal point is=89.4

Аналогично: что означает %s в строке формата Python?
Заключение.
Этот учебник направлен на предоставление конкретного объяснения различных типов параметров форматирования для типов данных с плавающей запятой в Python. Мы рассмотрели, чем синтаксис Python2 отличается от синтаксиса Python3, и насколько проще принимать входные данные и форматировать выходные данные в Python3 по сравнению с Python2. Вот некоторая пища для размышлений: как вы думаете, нужно ли программистам строковое форматирование больше, чем форматирование с плавающей запятой или наоборот?
Ссылка на источник