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

Python Как подушевать нули в строку?

Все, что вам нужно знать, чтобы подушевать нули на строки в Python Plus [+ бонус] видео прохождение.

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

У вас когда-нибудь была строка и хотела сделать его определенной длиной, добавив на него Zeros? Вы могли бы набрать это. Но мы программисты, мы ненавидим печатать! Конечно, должен быть способ кодировать это?

На подушечные нули в строку, используйте str.zfill () метод. Требуется один аргумент: окончательная длина строки, которую вы хотите, и прокладывает строку с нулями влево.

>>> a = '12345'
>>> b = a.zfill(10)
# b is 10 characters long
>>> len(b)
10
>>> b
'0000012345'

Если вы введете значение меньше, чем длина строки, он возвращает строку без изменений.

>>> a = '12345'
>>> b = a.zfill(3)
# b is the same as a, as 3 < len(a)
>>> b
'12345'

Давайте погрузимся в более подробный обзор Струнные прокладки И разные варианты у вас есть.

видео

Мы настоятельно рекомендуем смотреть видео для этой статьи. Идеи могут быть трудно понять сначала. Наличие Адама для руководства, вы делаете его намного проще.

Методы прокладки струны Python

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

Их имена очень легко запомнить:

  • ljust – Вернуть строку левый оправдано
  • Rjust – Вернуть строку правильно оправдано
  • Центр – Вернуть строку сосредоточенный

Все они имеют тот же синтаксис

str.ljust(width, fillchar=' ')
str.rjust(width, fillchar=' ')
str.center(width, fillchar=' ')
  • Первый аргумент – ширина . Это Длина струны Вы хотите вернуться. Если вы введете ширину меньше, чем Лен (ул.) Python возвращается ул ...| немодифицированный. Второй аргумент,
  • Fillchar не является обязательным. Использование – указать персонаж, который вы хотите использовать в PAD ваша строка По умолчанию это место, но вы можете использовать все. Если вы проходите строку длиннее одного персонажа, Python поднимает Типеррор Отказ

Вы хотите развивать навыки Хорошо округлый Python Professional То же оплачивается в процессе? Станьте питоном фрилансером и закажите свою книгу Оставляя крысиную гонку с Python На Amazon ( Kindle/Print )!

Давайте посмотрим на некоторые примеры для каждого метода.

Примеры str.ljust ()

>>> a = 'hello'

# Width 10
>>> a.ljust(10)
'hello     '

# Width 40
>>> a.ljust(40)
'hello                                   '

# Width 10 padded with 0
>>> a.ljust(10, '0')
'hello00000'

# Width 40 padded with -
>>> a.ljust(40, '-')
'hello-----------------------------------'

# TypeError as fill character has len > 1
>>> a.ljust(10, '12')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: The fill character must be exactly one character long

Примеры str.rjust ()

>>> a = 'hello'

# Width 10
>>> a.rjust(10)
'     hello'

# Width 40
>>> a.rjust(40)
'                                   hello'

# Width 10 padded with 0
>>> a.rjust(10, '0')
'00000hello'

# Width 40 padded with -
>>> a.rjust(40, '-')
'-----------------------------------hello'

# TypeError as fill character has len > 1
>>> a.rjust(10, '12')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: The fill character must be exactly one character long

Примеры str.center.

Примечание: если середина вашей строки не совсем середина ширины, Python немного оставляет его оправдать. Это имеет место во всех примерах ниже, которые используют даже ширину.

>>> a = 'hello'

# Width 10
>>> a.center(10)
'  hello   '

# Width 40
>>> a.center(40)
'                 hello     '

# Width 10 padded with 0
>>> a.center(10, '0')
'00hello000'

# Width 40 padded with -
>>> a.center(40, '-')
'-----------------hello------------------'

# TypeError as fill character has len > 1
>>> a.center(10, '12')
Traceback (most recent call last):
  File "", line 1, in 
TypeError: The fill character must be exactly one character long

# Width 11 - perfectly centered, 3 x 0 on either side
>>> a.center(11, '0')
'000hello000'

Методы формата форматирования струны Python

Если вы используете сложные операторы Print (), вы захотите использовать F-Strings или метод формата в какой-то момент. К счастью, мы можем легко прокладывать струны этого тоже.

F-струны были введены в Python 3.6 Отказ Они являются стандартом де-факто для форматирования строки в Python. Но мы будем включать Формат () Метод полноты.

Проверьте Официальные документы Python Для подробного обзора. Предупреждение, они сложно понять. Так что не откладывайте, если вам нужно у вас, чтобы понять их.

Python String Passding с использованием F-струн

F-струны невероятно мощные. Мы будем покрывать только Как подушевать строки Но проверьте это Статья для подробного обзора.

Вы обозначаете F-строки, поместив F или F перед струной. Их ключевая особенность называется Замена поле Отказ Обозначается вьющимися бремами {} Отказ Внутри скобок вы можете поставить переменные, выражения или даже функции. Это невероятно полезно, так как он дает вашим строкам много гибкости.

Для этой статьи мы сосредоточимся на вызове переменных в строках, например:

>>> name = 'John Cleese'
>>> print(f'I am called {name}')
I am called John Cleese

Вы можете изменить строку внутри поля замены. Вы можете подушевать, выровнять и изменить его длину. Это называется Спецификация формата в Python или format_spec для краткости. В F-string вы указываете это, используя толстой кишки : Отказ Все после того, как толстая кишка является опцией форматирования. Это не будет напечатано на экран. Давайте посмотрим на синтаксис на панель, выровнять и изменить длину строки.

В этом порядке мы вводим следующее, после того, как толстая кишка :

  • Заполните: персонаж для использования для прокладки
  • Выровнять: Используйте <,> или ^, чтобы оставить, правильно или центральное выравнивание
  • Ширина: Целочисленное значение, указав общую длину строки

Пример : Так что, если мы хотим подать нашу строку с Zeros, то есть заполните 0, правильно выровнять и иметь ширину 10, Мы бы использовали

  • Заполните: 0.
  • правильно выровнять : >
  • Ширина: 10.

Этот код показывает этот точный пример в действии:

>>> a = 'hello'
>>> print(f'{a:0>10}')
00000hello

Посмотрим, что произойдет, когда мы изменим каждый из этих вариантов. Во-первых, мы выберем другой Заполнить символ Отказ

# Use hyphen fill character
>>> print(f'{a:->10}')
-----hello

# If we specify no fill character, space is used
>>> print(f'{a:>10}')
    hello

# Exclamation mark fill character
>>> print(f'{a:!>10}')
!!!!!hello

Теперь мы изменим Выравнивание Отказ Знаки очков в направлении выравнивания I.e. < левый выравнивается и вверх ^ это центр выравнивания.

# Use hyphen fill character, left align
>>> print(f'{a:-<10}')
hello-----

# If we specify no fill character, space is used, left align
>>> print(f'{a:<10}')
hello

# Exclamation mark fill character, center align
>>> print(f'{a:!^10}')
!!hello!!!

Наконец, мы изменим строку длина .

# Hyphen fill character, right align, length 40
>>> print(f'{a:->40}')
-----------------------------------hello

# If we specify no fill character, space is used, right align, length 25
>>> print(f'{a:>25}')
                    hello

# Exclamation mark fill character, center align, length 33
>>> print(f'{a:!^33}')
!!!!!!!!!!!!!!hello!!!!!!!!!!!!!!

Чтобы прокладывать несколько струн, используйте несколько полей замены (фигурные скобки {} ).

>>> a = 'hello'
>>> b = 'world!'

# a - pad with underscore, center align, length 11
# b - pad with 0, right align, length 10
>>> print(f'{a:_^11} some extra text {b:0>10}')
___hello___ some extra text 0000world!

Прокладки с использованием .Format ()

Прокладки с Формат () похож на F-струны.

a = 'hello'

# These are the same
# a - pad with hyphen, right align, length 40
print(f'{a:->40}')
print('{:->40}'.format(a))

# Output
-----------------------------------hello

Вы можете пропустить строки напрямую на Формат Если вы хотите:

# These are the same
# a - pad with hyphen, right align, length 40
print('{:->40}'.format(a))
print('{:->40}'.format('hello'))

# Output
-----------------------------------hello

format_spec Синтаксис (все после толстой кишки) одинаково при использовании F-строк или формата. Разница в том, что вы проходите А к Формат () Вместо того, чтобы разместить его в поле замены {} Отказ Или вы можете ввести строку прямо в Формат () Отказ

Производство нескольких струн может стать более сложным при использовании Формат () Отказ Допустим, у вас есть две замену поля и пропустите две переменные в Формат (A, B) . Тогда А пойду на первый и B до второго.

a = 'hello'
b = 'world!'

# These are the same
# F-string
print(f'{a:_^11} some extra text {b:0>10}')

# Format
# a first, then b
print('{:_^11} some extra text {:0>10}'.format(a, b))

# Output
___hello___ some extra text 0000world!

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

# These are the same
print('{:_^11} some extra text {:0>10}'.format(a, b))

# a is index 0, b is index 1
print('{0:_^11} some extra text {1:0>10}'.format(a, b))
# ___hello___ some extra text 0000world!

# Call b from firt replacement field and a from the second.
print('{1:_^11} some extra text {0:0>10}'.format(a, b))
# __world!___ some extra text 00000hello

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

# These are the same
print('{:_^11} some extra text {:0>10}'.format(a, b))
print('{:_^11} some extra text {:0>10}'.format('hello', 'world!'))
# ___hello___ some extra text 0000world!

Что вы должны выбрать – формат или F-струны?

Python представил F-Strings в PEP 498 Отказ Одна из причин этого, потому что Формат () Синтаксис может быть многословным, медленным и трудно прочитать. F-струны решают все эти проблемы. Они просты, очень быстро и легко читать. Итак, вы всегда должны использовать их вместо Формат () Отказ Тем не менее, полезно знать Формат () Синтаксис на случай, если вы прочитаете его в чужом коде.

Python int string с ведущими zeros

Преобразовать целое число Я в строку с ведущими нулями, чтобы она состоит из 5 Персонажи, используйте строку формата F '{I: 05D}' Отказ D Флаг в этом выражении определяет, что результатом является десятичное значение. ул. (I) .zlue (5) выполняет одно и то же конвертацию строки целого числа с ведущими нулями.

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

Пример : Для целого числа 42 вы хотите заполнить его ведущими нулями на следующую строку с 5 символами: '00042' Отказ

Во всех методах мы предполагаем, что целое число имеет менее 5 символов.

Метод 1: Форматная строка

Первый метод использует Формат строки Функция в Python 3+. Они также называют Замена полей .

# Integer value to be converted
i = 42


# Method 1: Format String
s1 = f'{i:05d}'
print(s1)
# 00042

Код F '{I: 05D}' помещает целое число i в недавно созданную строку. Однако он говорит языку формата, чтобы заполнить строку в 5 Персонажи с ведущими '0' с использованием десятичной системы. Это самый питонический способ выполнить эту проблему.

Способ 2: zfill ()

Другой читаемый и пифитонический способ заполнить строку ведущими 0s – string.zfill () метод.

# Method 2: zfill()
s2 = str(i).zfill(5)
print(s2)
# 00042

Метод принимает один аргумент, и это количество позиций полученной строки. По умолчанию он заполняет 0 с.

Связанная статья: Python int string с ведущими zeros

Резюме

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

Если вы просто хотите прокладывать нули слева от струны, нет ничего лучше, чем zfill () метод. Он был разработан, чтобы решить эту проблему.

Прокладывать разные персонажи, используйте ljust () , Rjust () и Центр () Отказ Или вы можете использовать F-строки или Формат () метод.

Встроенные методы гораздо проще для изучения, чтения и реализации. Но важно, вы знаете их всех. Вы увидите все в дикой природе!

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

Вы хотите заработать больше денег? Вы в тупике 9-5 работа? Вы мечтаете о разрыве свободным и кодирующим полный рабочий день, но не уверен, как начать?

Становление штатным кодером страшно. Там так много кодирования информации, что она подавляющая.

Большинство учебных пособий учат вам Python и сказать вам, чтобы получить работу на полный рабочий день.

Это нормально Но зачем ли вы хотите другую офисную работу?

Не жаждай свобода? Разве вы не хотите путешествовать по миру? Разве вы не хотите проводить больше времени со своими друзьями и семьей?

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

До настоящего времени.

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

Звучит слишком хорошо, чтобы быть правдой, верно?

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

Нажмите на ссылку ниже, чтобы посмотреть мою вебинар Pure-Value. Я покажу вам точные шаги, чтобы взять вас от того места, где вы находитесь в полный рабочий день Python Freelancer. Это доказаны, методы NO-BS, которые получают ваши результаты быстро.

Неважно, если вы начинаете питон или Python Pro. Если вы не делаете шесть фигур/год с Python прямо сейчас, вы узнаете что-то из этого вебинара.

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

Webinar Freelancer

использованная литература

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

  1. https://www.python.org/dev/peps/pep-0498/
  2. https://realpython.com/python-f-strings/
  3. https://docs.yphon.org/3.8/Library/string.html#Formatexamples
  4. https://stackoverflow.com/questions/339007/how-to-pad-zeroes-to-a-string
  5. https://www.tutorialspoint.com/python/string_zfill.htm
  6. http://zetcode.com/python/fstring/
  7. https://pyformat.info/
  8. https://www.tutorialspoint.com/python/string_rjust.htm

Expert Writer & Content Creator – наука о науке и машине.

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

Работать со мной, пожалуйста, обратитесь к Upwork
https://tinyurl.com/hire-adam-murphy.

Оригинал: “https://blog.finxter.com/python-pad-zeros-to-a-string/”