Рубрики
Без рубрики

Функция формата Python (): Руководство NO-BS по настоящему

https://youtu.be/ywky-3tvyry Веб наполнен дерьмовым руководством о функции форматирования Python. Время от времени он может стать действительно запутанным — и трудно увидеть лес для деревьев. В этом руководстве я постараюсь постепенно построить базовое понимание функции встроенного формата (), что она делает, и как вы можете использовать его, чтобы стать … Python Format () Функция: Руководство по NO-BS Более “

Автор оригинала: Chris.

Веб заполнен дерьмовыми учебниками о функции форматирования Python. Иногда он может стать действительно запутанным – и трудно увидеть лес для деревьев. В этом руководстве я постараюсь постепенно построить базовое понимание Встроенный Формат () Функция, что она делает, и как вы можете использовать его, чтобы стать более эффективным кодировщиком.

Итак, начнем с самого начального вопроса:

Какой формат () функция и почему вы должны заботиться?

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

  • Вы читаете даты файла с форматом '11/9/2021 ' и вы хотите, чтобы они имели формат '11/09/2021 ' Отказ
  • Вы читаете цены на дом из базы данных, и они приходят в формате «1 000 000 $» – И что вы хотите: '$ 1 000 000' Отказ
  • Вам нужно построить строку из нескольких целочисленных переменных, но вам не нравится строковые конкатенации 'Дом' + ул. (Num) + 'Цена' + STR (цена) + 'Usd' – Просто получить 'Дом 2 цена составляет 10000 долларов США Отказ

Формат () Функция предоставляет вам мощный инструмент, чтобы легко решить все эти проблемы. На самом деле, если вы освоили Формат () Функция, вы увидите, что вы можете применить его к все больше и больше повседневных проблем.

В конце концов, программисты пишут программы, которые преобразуют вход на выход – вот все есть.

Встроенный Python Формат (значение, спецификация) Функция преобразует ввод одного формата на вывод другого формата, определенного вами. В частности, он применяет спецификатор формата спецификация к аргументу ценность и возвращает отформатированное представление ценить . Например, Формат (42, 'f') Возвращает строковое представление '42 .000000 ' Отказ

Аргумент ценить Значение, которое будет отформатировано. Может быть строка или целое число или любой другой объект, реализующий метод __Format __ ().
Аргумент спецификация Спецификатор форматирования для контроля должен быть отформатирован значение. Использует мини-язык спецификации формата.
Возвращаемое значение нить Возвращает отформатированное представление значения.

Изучить формат () Пример

Сейчас вся эта информация очень абстракция, и она, вероятно, не значит для вас. Давайте погрузимся в функциональность форматирования один пример за раз.

формат () целое число

Наиболее базовым использованием функции формата является прохождение целочисленного значения в него:

>>> format(42)
'42'

Функция формата ведет себя так же, как встроенный str () Функция, которая преобразует целое число в строку. Вы уже можете извлечь первые два знания из этого примера:

Insight : Вывод Формат () Функция всегда является строковым значением.

Insight : Первый аргумент Формат () Функция – это значение, которое будет отформатировано.

Вы поглотили оба понимания?

формат () для преобразования int плавать

Отлично, давайте сделаем его немного полезным: вы хотите Преобразовать целочисленное значение 42 на плавающее значение 42.0 Отказ Можете ли вы сделать это с Формат () функция? Конечно!

>>> format(42, 'f')
'42.000000'

Вы передаете второй дополнительный аргумент 'f' это называется Формат спецификатора Отказ Есть целый язык спецификатора формата, который позволяет делать всевозможные мощные преобразования вашего входного значения. 'f' Спецификатор формата просто означает объектив форматирования «Поплавок» Отказ

Insight : Второй аргумент Формат () это Формат спецификатора Отказ

Формат () Precision Specifier

Вы находите, что многие трейлинг Zeros в '42 .000000 ' Не выглядивайте красиво и слишком точны для ваших целей. Итак, как уменьшить точность?

Добавив префиссный префикс в спецификатор формата с помощью .п в то время как P это Точность , то есть число нулей после десятичной точки для числа плавающих точек.

>>> format(42, '.10f')
'42.0000000000'
>>> format(42, '.2f')
'42.00'

Это выглядит красивее! И, это приводит нас к следующему пониманию!

Insight : .p Префикс в формате спецификатора контролирует точность чисел плавающих точек.

Формат () Важные спецификаторы типа

Есть много базовых спецификаторов формата, такие как 'f' Отказ Вот стол самых важных – с примерами:

‘b’ >>> Формат (42, «B») ‘101010’ Двоичный формат. Выводит число в базе 2.
‘d’ >>> Формат (0b101010, ‘d’) ’42’ Десятичный целочисленный формат. Учитывая номер в другой базе (например, двоичный). Форматы номер в базу 10.
‘e’ >>> Формат (1000, ‘.2e’) ‘ 1.00e + 03 ‘>>> Формат (1000,’ .0e ‘)’ 1e + 03 ‘ Научный формат экспонента. Для данной точности P, форматы числа в научном обозначении с буквой «E» отделения коэффициента от показателя.
‘f’ >>> Формат (42, ’10f ‘) ’42 .0000000000’ >>> Формат (42, ‘.2f’) ‘ 42.00’ Формат с фиксированным точком поплавка. Для данной точности P, форматирует число в качестве десятичного числа, имеющие ровно P цифры после десятичной точки. По умолчанию шесть позиций после десятичной точки.

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

Формат () спецификатор ширины

Скажите, вам требуется, чтобы ваш отформатированный вывод имеет определенный ширина . Например, все строки, напечатанные в оболочке, должны иметь ширину 25 позиций. Можете ли вы сделать это с Формат () ? Вы догадались: Да!

>>> format(42, '25f')
'                42.000000'
>>> format(42, '15f')
'      42.000000'

Чтобы определить ширину выхода, добавьте количество цифр в качестве префикса к спецификатору формата – в предыдущих примерах 25 цифр и 15 цифр соответственно.

формат() Сочетание спецификатов

Вы также можете объединить его с точным спецификатором, таким образом:

>>> format(42, '15.2f')
'          42.00'
  • Целое число 15 Определяет ширину,
  • Прецизионный спецификатор .2 определяет количество десятичных точек, а также
  • Персонаж 'f' Управляет выходом типа (float).

Insight : Вы можете объединить несколько спецификатов, чтобы точно настроить свой выходной формат.

Итак, давайте будем использовать это, чтобы хорошо выровнять поплавки на выходе Python Shell:

# BEFORE
floats = [1.0,
          3.14,
          4.666,
          424242.424242]

for f in floats:
    print(f)
'''
1.0
3.14
4.666
424242.424242
'''

И использование спецификатора формата для претешения вывода:

# AFTER
floats = [1.0,
          3.14,
          4.666,
          424242.424242]

for f in floats:
    print(format(f, '25.2f'))

'''
                     1.00
                     3.14
                     4.67
                424242.42
'''

Теперь цифры красиво выровнены, и все они имеют одинаковое количество цифр после плавающей точкой.

Формат спецификации языка Общая форма

Вы видели много разных примеров спецификатора формата. Но формально, как это работает и как вы можете объединить все эти биты и куски?

Вот формальный языковой синтаксис формата () спецификатора () от официальной документации:

format_spec     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]
fill            ::=  
align           ::=  "<" | ">" | "=" | "^"
sign            ::=  "+" | "-" | " "
width           ::=  digit+
grouping_option ::=  "_" | ","
precision       ::=  digit+
type            ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Я знаю, что очень трудно понять смысл этого языка – но оставайтесь со мной на мгновение! Прежде всего, вам нужно знать, что все между квадратами кронштейнов [...] является необязательным языковым элементом. Вы начинаете с format_spec И впоследствии замените его дополнительными языковыми элементами, чтобы получить ваш спецификатор окончательного формата.

Например, вы можете получить наполнить символ, за которым следует элемент выравнивания, а затем ширина, а затем тип:

format_spec -->
fill align width type -->
 "<" | ">" | "=" | "^" digit+ "b"| ... | "%" -->
x=15f 
>>> format(42, 'x=15f')
'xxxxxx42.000000'
  • заполнить заменяется на х Чтобы заполнить все позиции с персонажем 'x' Отказ
  • выровнять заменяется на = выровнять строку в центре, а не справа или влево.
  • ширина заменяется на 15 Чтобы сделать всю строку вывода 15 позиций в ширину.
  • Тип заменяется на «F» для преобразования int 42 на поплавок 42.000000 Отказ

формат () vs string.format () vs __format __ ()

Встроенный Формат (значение, спецификация) Функция похожа на string.format (spec) метод – оба внутренне называют значение .__ формат __ () метод. Тем не менее, Формат () Функция также применяется к не строковым значениям.

Но прежде чем мы будем двигаться дальше, я рад представить вам мою новую книгу Python Python One-listers (Amazon Link).

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

Книга была выпущена в 2020 году с помощью книги по программированию мирового класса Nostarch Press (San Francisco).

Ссылка: https://nostarch.com/pythononeliners.

Хотите улучшить свои навыки Python? Проверьте наши бесплатные чис-листы Python:

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

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

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/python-format-function/”