Список строковых методов для работы с прописными и строчными буквами в Python

Бизнес

Строковый тип Python (str) поставляется с удобными методами для работы с прописными и строчными буквами. Вы можете конвертировать между прописными и строчными буквами и определять регистр.

Здесь представлена следующая информация.

  • Преобразование между прописными и строчными буквами
    • Основное использование
    • Работа с полноразмерными и полуразмерными символами
    • str.upper()Преобразовать все буквы в заглавные
    • str.lower()Преобразовать все буквы в строчные
    • str.capitalize()Переведите первую букву в верхний регистр, а остальные — в нижний.
    • str.title()Преобразовать первую букву слова в прописную, а остальные — в строчные.
    • str.swapcase()Преобразование прописных букв в строчные и строчных букв в прописные.
  • Определять заглавные и строчные буквы
    • str.isupper(): Определите, все ли буквы заглавные
    • str.islower(): Определите, все ли символы являются строчными.
    • str.istitle(): Определите, является ли он титульным.
  • Сравнение строк без учета регистра

Преобразование между прописными и строчными буквами

Основное использование

Сначала я объясню основные правила использования. В качестве примера мы будем использовать метод upper() для выделения всех букв заглавными буквами, но то же самое относится и к другим методам.

Для удобства мы пишем «преобразование», но в Python объекты строкового типа (str) не обновляются, поэтому сама исходная строка (s_org в примере) не изменяется.

s_org = 'pYThon proGramminG laNguAge'

print(s_org.upper())
# PYTHON PROGRAMMING LANGUAGE

print(s_org)
# pYThon proGramminG laNguAge

Если вы хотите использовать преобразованную строку позже, вы можете сохранить ее в новой переменной следующим образом.

s_new = s_org.upper()
print(s_new)
# PYTHON PROGRAMMING LANGUAGE

Также можно перезаписать исходную переменную.

s_org = s_org.upper()
print(s_org)
# PYTHON PROGRAMMING LANGUAGE

Работа с полноразмерными и полуразмерными символами

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

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

s_org = 'Pyhon Python 123'

print(s_org.upper())
# PYHON PYTHON 123

str.upper(): преобразование всех букв в верхний регистр

s_org = 'pYThon proGramminG laNguAge'

print(s_org.upper())
# PYTHON PROGRAMMING LANGUAGE

str.lower(): преобразование всех символов в нижний регистр

s_org = 'pYThon proGramminG laNguAge'

print(s_org.lower())
# python programming language

str.capitalize(): преобразование первой буквы в прописную, остальных — в строчную

s_org = 'pYThon proGramminG laNguAge'

print(s_org.capitalize())
# Python programming language

str.title(): преобразование первой буквы слова в прописную, а остальных — в строчную

Преобразование в так называемое титульное дело.

s_org = 'pYThon proGramminG laNguAge'

print(s_org.title())
# Python Programming Language

str.swapcase(): преобразование прописных букв в строчные, строчных в прописные

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

s_org = 'pYThon proGramminG laNguAge'

print(s_org.swapcase())
# PytHON PROgRAMMINg LAnGUaGE

Определять заглавные и строчные буквы

В следующих примерах методы вызываются непосредственно из строковых литералов, таких как 'python', но то же самое верно и при хранении в переменных, как в предыдущих примерах.

str.isupper(): определяет, все ли буквы прописные

isupper() возвращает true, если он содержит хотя бы один символ с учетом регистра и все они прописные, и false в противном случае.

print('PYTHON'.isupper())
# True

print('Python'.isupper())
# False

Если символ чувствителен к регистру, оцениваются даже двухбайтовые символы.

print('PYTHON'.isupper())
# True

Если включен хотя бы один чувствительный к регистру символ, нечувствительный к регистру символ игнорируется, но если не включен ни один чувствительный к регистру символ (все символы нечувствительны к регистру), решение будет ложным.

print('PYTHON 123'.isupper())
# True

print('123'.isupper())
# False

str.islower(): определяет, все ли символы являются строчными

islower() возвращает true, если он содержит хотя бы один символ с учетом регистра и все они строчные, и false в противном случае.

print('python'.islower())
# True

print('Python'.islower())
# False

Если символ чувствителен к регистру, оцениваются даже двухбайтовые символы.

print('python'.islower())
# True

Если включен хотя бы один чувствительный к регистру символ, нечувствительный к регистру символ игнорируется, но если не включен ни один чувствительный к регистру символ (все символы нечувствительны к регистру), решение будет ложным.

print('python 123'.islower())
# True

print('123'.islower())
# False

str.istitle(): Определите, является ли регистр заголовком.

istitle() возвращает true, если строка является регистром заголовка (первая буква слова заглавная, остальные строчные), false в противном случае.

print('Python Programming Language'.istitle())
# True

print('PYTHON Programming Language'.istitle())
# False

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

print('★Python Programming Language'.istitle())
# True

print('Python★ Programming Language'.istitle())
# True

print('Py★thon Programming Language'.istitle())
# False

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

print('The 1st Team'.istitle())
# False

print('The 1St Team'.istitle())
# True

Если не включены символы, чувствительные к регистру (все символы не чувствительны к регистру), false.

print('123'.istitle())
# False

Сравнение строк без учета регистра

При сравнении строк разные прописные и строчные буквы не считаются эквивалентными.

s1 = 'python'
s2 = 'PYTHON'

print(s1 == s2)
# False

Если вы хотите провести сравнение без учета регистра, вы можете использовать upper() или lower() для преобразования и сравнения.

print(s1.upper() == s2.upper())
# True

print(s1.lower() == s2.lower())
# True

print(s1.capitalize() == s2.capitalize())
# True

print(s1.title() == s2.title())
# True
Copied title and URL