Питон нули перед числом

Питон нули перед числом

Last updated: Feb 19, 2023
Reading time · 4 min

banner

# Table of Contents

# Add leading zeros to a number in Python

To add leading zeros to a number:

  1. Use the str() class to convert the number to a string.
  2. Use the str.zfill() method to add leading zeros to the string.
  3. The method takes the width of the string and pads it with leading zeros.
Copied!
num = 246 result_1 = str(num).zfill(5) print(result_1) # 👉️ '00246' result_2 = str(num).zfill(6) print(result_2) # 👉️ '000246'

add leading zeros to number

We used the str() class to convert the number to a string.

This is necessary because adding leading zeros to a number causes a SyntaxError .

The str.zfill method takes the width of the string and left-fills the string with 0 digits to make it of the specified width.

Copied!
num = 13 result_1 = str(num).zfill(3) print(result_1) # 👉️ '013' result_2 = str(num).zfill(4) print(result_2) # 👉️ '0013'

Converting the number 13 to a string gives us a string with a length of 2 .

Passing 3 as the width to the zfill() method means that the string will get left-filled with a single 0 digit.

# The zfill() method handles the leading sign prefix

The str.zfill() method handles a leading sign prefix (e.g. + or — ) by inserting the padding after the sign.

Copied!
num = -13 result_1 = str(num).zfill(3) print(result_1) # 👉️ '-13' result_2 = str(num).zfill(4) print(result_2) # 👉️ '-013'

zfill method handles leading sign prefix

Note that the sign counts toward the width of the string.

If the specified width is less than or equal to the length of the original string, then the original string is returned.

Copied!
num = 13 result_1 = str(num).zfill(2) print(result_1) # 👉️ '13' result_2 = str(num).zfill(1) print(result_2) # 👉️ '13'

The number in the example has a length of 2 , so trying to fill it to 2 characters doesn’t have an effect.

# Using a formatted string literal to add leading zeros to a number

Alternatively, you can use a formatted string literal to add leading zeros to a number.

Copied!
num = 13 result_1 = f'num:04>' print(result_1) # 👉️ '0013' result_2 = f'num:05>' print(result_2) # 👉️ '00013'

using formatted string literal to add leading zeros to number

We don’t have to use the str() class to convert the integer to a string as the conversion is done for us automatically.

Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with f .

Copied!
my_str = 'is subscribed:' my_bool = True result = f'my_str> my_bool>' print(result) # 👉️ is subscribed: True

Make sure to wrap expressions in curly braces — .

Formatted string literals also enable us to use the format specification mini-language in expression blocks.

The first digit after the colon is the fill value and the second is the width of the string.

Copied!
num = 13 result_1 = f'num:04>' print(result_1) # 👉️ '0013'

This approach also works if the width of the string is stored in a variable.

Copied!
num = 13 width_of_string = 4 result_1 = f'num:0width_of_string>>' print(result_1) # 👉️ '0013'

# Add leading zeros to a number using str.format()

You can also use the str.format() method to add leading zeros to a number.

Copied!
num = 13 result_1 = ''.format(num) print(result_1) # 👉️ '0013' result_2 = ''.format(num) print(result_2) # 👉️ '00013'

add leading zeros to number using str format

The str.format method performs string formatting operations.

Copied!
first = 'bobby' last = 'hadz' result = "Name: <> <>".format(first, last) print(result) # 👉️ "Name: bobby hadz"

The string the method is called on can contain replacement fields specified using curly braces <> .

# Add leading zeros to a number using str.rjust()

You can also use the str.rjust() method to add leading zeros to a number.

Copied!
num = 13 result_1 = str(num).rjust(4, '0') print(result_1) # 👉️ '0013' result_2 = str(num).rjust(5, '0') print(result_2) # 👉️ '00013'

add leading zeros to number using str rjust

The str.rjust method pads the beginning of the string to the specified width with the provided fill character.

The str.rjust method takes the following 2 arguments:

Name Description
width The total length of the padded string
fillchar The fill character to pad the string with
Copied!
num = 13 result_1 = str(num).rjust(4, '0') print(result_1) # 👉️ '0013'

The first argument is the width of the padded string and the second is the fill character ( 0 in our case).

Notice that we had to convert the number to a string using the str() class.

This is necessary because rjust() is a method implemented on strings.

# Add leading zeros to a number using format()

You can also use the format() function to add leading zeros to a number.

Copied!
num = 13 result = format(num, '03') print(result) # 👉️ 013 result = format(num, '04') print(result) # 👉️ 0013 result = format(num, '05') print(result) # 👉️ 00013

add leading zeros to number using format

The first argument the format() function takes is the value and the second is a string used to format the value.

The first digit is the fill character ( 0 ) and the second is the total width of the string.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.

Источник

Мини-язык форматирования

Инструкции (спецификации) мини-языка могут передаваться напрямую встроенной функции format().

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

Пустая строка формата ‘ ‘ производит тот же эффект, что и применение к значению функции str(), в то время как не пустая строка обычно модифицирует вывод каким-либо образом.

Общий вид инструкции: [[заполнение]равнение][знак][‘#’][‘0’][минразмер][‘,’][‘.’точность][тип] .

1.Заполнение

Заполнение можно указать, если указано равнение. В качестве заполнения может выступать любой символ. Если символ не указан, то будет использован ‘ ‘ (пробел).

В форматных строках и методе str.format() в качестве заполнения не доспускается использовать символы фигурных скобок ( < , >), однако их можно применять во вложенных маркерах для замены. Это ограничение не касается функции format().

2. Равнение

Равнение может быть указано следующими способами:

Равнение влево. Используется по умолчанию для большинства объектов.
Равнение вправо. Используется по умолчанию для чисел.
= Для чисел. Добавляет отступ после знака (если есть), но перед числом. Пример: +000000120 . Становится вариантом по умолчанию, если 0 предшествует длине.
^ Центровка.

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

 ''.format('some') # 'some++++' 
'8>'.format('some') # '++++some'
''.format('some') # '++some++'
''.format(-5) # '-++++++5'

3. Знак

Знак используется только для числовых типов:

+ Использовать знак и для положительных и для отрицательных.
Использовать знак только для отрицательных. Используется по умолчанию.
пробел Добавить пробел перед положительным и минус перед отрицательным.
 ''.format(5) # '+5' 
''.format(-5) # '-5'
''.format(5) # '5'
''.format(-5) # '-5'
''.format(5) # ' 5'
''.format(-5) # '-5'

4. Альтернативное представление

# — использовать альтернативную форму представления. Разные типы предлагают разные альтернативные формы. Опция доступна для целых, чисел с плавающей запятой, комплексных и десятичных.

  • Для целых, когда используются двоичная восьмеричная и шестнадцатеричная формы, опция добавляет префиксы 0b , 0o и 0x соответственно.
  • Для чисел с плавающей запятой, комплексных и десятичных альтернативная форма подразумевает наличие точки (разделителя), даже если за ней не следуют цифры. В обычной форме разделитель ставится, только если за ним следует цифра. Кроме того, для преобразований типа g и G (см. ниже) нули в конце числа не отсекаются.
 ''.format(42) # '101010' 
''.format(42) # '0b101010'

''.format(42) # 2a
''.format(42) # '0x2a'

''.format(42) # '52'
''.format(42) # '0o52'

5. Тысячный разделитель

+py2.7 +py3.1 , — использовать запятую в качестве тысячного разделителя. Чтобы использовать разделитель, заданный локалью, используйте тип преобразования целых n (см. ниже). Смотрите также PEP 378.

 ''.format(1000000) # '1000000' 
''.format(1000000) # '1,000,000'

6. Ведущие нули

0 — Если не задано равнение, то нуль перед минразмер включает добавление перед числом нулей, зависящее от его знака.

 ''.format(5) # '0005' 
''.format(-5) # '-005'

# То же самое с использованием равнения:
''.format(5) # '0005'
''.format(-5) # '-005'

7. Минимальный размер

Минразмер — это целое, задающее минимальный размер (длину) значения. Если не указыается, то будет использована длина самого значения.

8. Точность

  • Для чисел с плавающей запятой — это количество цифр, которые требуется вывести после десятичного разделителя (для форматирования f и F ), либо до и после разделителя (для форматирования g и G ).
  • Для целых точность не обрабатывается.
  • Для прочих типов — это количество знаков, которые требуется взять из значения.
 ''.format(5) # '5.000000' 
''.format(5) # '5.00'
''.format('some') # 'so'

9. Тип

Тип — это тип представления, который требуется использовать.

b Двоичный вид. Число по основанию 2.
c Символ. Представляет целое в виде соответствующего Unicode-символа.
d Десятичная форма. Число по основанию 10.
o Восьмеричная форма. Число по основанию 8.
x , X Шестнадцатеричная форма. Число по основанию 16. Буквы в нижнем и в верхнем регистре соответственно.
n Число. То же, что и d , только символы-разделители будут зависеть от настроек используемой локали.
None То же, что и d .

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

Типы для чисел с плавающей запятой и для десятичных

e , E С плавающей запятой (нижний и верхний регистр соответственно). Экспоненциальный формат. ※
f , F С фиксированной запятой (нижний и верхний регистр для nan и inf соответственно). ※
g , G Общий вид (нижний и верхний регистр соответственно). Для заданной точности p >= 1 , округляет число до p значащих цифр и представляет результат, используя либо число с фиксированной запятой, либо научный формат, в зависимости от величины этого числа. Точность 0 трактуется эквивалентно точности 1 . ※ ※※
n Число. То же, что и g , только символы-разделители будут зависеть от настроек используемой локали.
% Процент. Умножает число на 100 и использует f для вывода. В конце ставится % .
None Похоже на g , за исключением случая, когда используется вид с фиксированной запятой, при этом за разделителем следует по меньшей мере одна цифра. Точность по умолчанию в этом случае устанавливается достаточной для представления заданного значения. Общий эффект соответствует применению str(), с применением прочих модификаций формата.

Источник

Читайте также:  Реализация api на java
Оцените статью