Вам не нужно всегда использовать f-строки. Стандартная библиотека по-прежнему мощная

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

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

В этой статье мы узнаем, как форматировать строки с помощью встроенных строковых методов, и мы не будем использовать какие-либо трюки с f-строками.

Сначала мы рассмотрим выравнивание строк и узнаем, как выравнивать строки. Затем мы продолжим заполнение, но сложное заполнение. В конце концов, мы узнаем самый уникальный и элегантный метод, на мой взгляд.

Давайте начнем с изучения того, как выравнивать строки.

1. центр ()

center() принимает два аргумента:

  • ширина
  • char для заполнения (необязательно)

и возвращается

  • центрированная строка заданной длины

ширина — это окончательная длина строки после центрирования. Если ширина меньше или равна длине исходной строки, центрирование не происходит и возвращается исходная строка.

>>> "Python".center(20)
'       Python       '
>>> "Python".center(21)
'        Python       '
>>> "Python".center(5)
'Python'

Теперь давайте попробуем дополнить нашу строку тире.

>>> "Python".center(26, '-')
'----------Python----------'

Так просто в использовании. Верно?

2. просто()

Вы можете генерировать строки с выравниванием по левому краю с помощью метода ljust() string. Он также принимает два аргумента:

  • ширина
  • char для заполнения (необязательно)

и возвращается

  • выровненная по левому краю строка заданной длины

То же правило справедливо и для аргумента ширины.

>>> "Python".ljust(20)
'Python              '
>>> "Python".ljust(26, 'n')
'Pythonnnnnnnnnnnnnnnnnnnnn'

3. просто()

Вы, наверное, оцениваете, что сейчас произойдет. rjust() имеет аналогичную функциональность с ljust(), но выравнивает ваши строки по правому краю. Опять же, он принимает два аргумента:

  • ширина
  • char для заполнения (необязательно)

и возвращается

  • выровненная по правому краю строка заданной длины
>>> "Python".rjust(20)
'              Python'
>>> "Python".rjust(26, '.')
'....................Python'

4. Заполнить()

zfill() принимает один аргумент:

  • ширина

и возвращается

  • строка, дополненная нулями слева

Опять же, то, что мы видели оwidth ранее, по-прежнему актуально.

Пример:

>>> "python".zfill(10)
'0000python'

Этот метод не так полезен, если все символы алфавитные. Да! Это удобно, если символы числовые.

>>> "1234".zfill(10)
'0000001234'

Перед числом добавляется 6 нулей.

Но что делает удивительным этот метод, так это другая его особенность. Если строка начинается с - или + (минус или плюс), она ставит нули сразу после первого символа знака, а не перед ним.

>>> "-729".zfill(8)
'-0000729'
>>> "+54372".zfill(11)
'+0000054372'
>>> "+positive".zfill(10)
'+0positive'
>>> "-negative".zfill(10)
'-0negative'
>>> "++python".zfill(10)
'+00+python'

5. название ()

Метод title() возвращает строку в формате заголовка. Другими словами, он делает первые буквы каждого слова заглавными, а остальные опускает.

>>> "i love python".title()
'I Love Python'
>>> "pyTHoN IS awesOMe".title()
'Python Is Awesome'

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

>>> "21sT cEntURy".title()
'21St Century'

Стоит отметить, что метод title() имеет один недостаток. Он также делает заглавной первую букву после апострофа.

>>> "I'm a python developer".title()
"I'M A Python Developer"

Так что будьте осторожны при использовании title(). Имейте в виду, что это может привести к нежелательным результатам.

6. свопкейс()

Он делает нижний символ верхним и наоборот.

>>> "pyTHoN IS awesOMe".swapcase()
'PYthOn is AWESomE'

Таким образом, это в основном меняет регистр символов. Нижние символы становятся верхними, верхние символы становятся нижними.

7. чехол()

Теперь мы подошли к моему любимому! Дамы и господа, с гордостью представляю вам casefold(). Вот!

casefold() — самый интересный метод в этой статье. Это делает все символы в вашей строке строчными.

>>> "I love Python".lower() == "I love Python".casefold()
True

Нет, casefold() не то же самое, что lower()! На самом деле casefold() это агрессивный lower() метод! Давайте посмотрим, что происходит на другом примере:

>>> "die Straße".lower()
'die straße'

Теперь воспользуемся casefold() :

>>> "die Straße".casefold()
'die strasse'

(Примечание: straße — это немецкое слово, означающее "улица". "ß" означает "ss" [две строчные буквы "s"] на немецком языке.)

lower() не изменяет «ß», тогда как casefold() преобразует «ß»в«ss».

Как правило, lower() и upper() используются для сравнения строк, чтобы проверить, выполняется ли условие, но они могут работать неправильно, особенно если строка содержит неанглийский символ (не символ ASCII). Таким образом, вы можете проверить свои строки с помощью casefold(), чтобы выполнить сопоставление без учета регистра. Предположим, у вас есть программа, которая берет адреса пользователей в регистронезависимом формате и пытается получить название улицы.

Мы передадим "Reinhardtstraße" этой функции и ожидаем получить "reinhardt":

>>> get_street_name("Reinhardtstraße")
'reinhardtstraße'

Как видите, это не то, чего мы хотим! Наша проверка не проходит. Правильный способ — использовать casefold() вместо lower().

Давайте использовать это:

>>> get_street_name("Reinhardtstraße")
'reinhardt'

Таким образом, casefold() преобразует строку в нижний регистр. Например, если мы хотим сравнить строки в стандартах Unicode, а не в ASCII, мы должны использовать метод casefold(). Он преобразует строку в строку, свернутую в регистр, для сопоставления без учета регистра. Таким образом, это делает строку полностью нечувствительной к регистру для сравнения. Однако, если язык вашей строки английский или строка содержит только стандартные символы ASCII, имеет смысл продолжать использовать lower(). lower() традиционно известен тем, что разработчики сделали символы нижнего регистра. casefold() следует использовать, если вы намерены выполнять сравнения строк без учета регистра. И последнее, сравнение строк — это глубокий колодец. Я рекомендую вам посмотреть на этот ответ и тот ответ на StackOverflow, которые охватывают casefold(), под другим углом.

Бонус

Вывод:

Thank you...............................
..............for reading...............
..............................my article

Если хотите, можете прочитать мою статью о f-струнах.