Вам не нужно всегда использовать 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-струнах.