Lista metod łańcuchowych do manipulowania wielkimi i małymi literami w Pythonie

Biznes

Typ łańcuchowy Pythona (str) jest standardowo wyposażony w wygodne metody do manipulowania wielkimi i małymi literami. Można konwertować pomiędzy wielkimi i małymi literami oraz określać wielkość liter.

Podane są tu następujące informacje.

  • Konwersja między wielkimi i małymi literami
    • Podstawowe zastosowanie
    • Obsługa znaków pełnowymiarowych i półpełnowymiarowych
    • str.upper()Zamień wszystkie litery na wielkie.
    • str.lower()Zamień wszystkie litery na małe.
    • str.capitalize()Zamień pierwszą literę na wielką, a pozostałe na małą.
    • str.title()Zamień pierwszą literę w wyrazie na wielką, a pozostałe na małą.
    • str.swapcase()Konwertuj duże litery na małe i małe litery na duże.
  • Określanie wielkich i małych liter
    • str.isupper(): Określ, czy wszystkie litery są wielkie
    • str.islower(): Określ, czy wszystkie znaki są małymi literami.
    • str.istitle(): Określ, czy jest to sprawa tytułu.
  • Porównaj łańcuchy w sposób niewrażliwy na wielkość liter.

Konwersja między wielkimi i małymi literami

Podstawowe zastosowanie

Po pierwsze, wyjaśnię podstawowe zastosowanie. Jako przykładu użyjemy metody upper() do kapitalizacji wszystkich liter, ale to samo odnosi się do innych metod.

Dla wygody piszemy „konwersja”, ale w Pythonie obiekty typu string (str) nie są aktualizowalne, więc sam oryginalny string (s_org w przykładzie) nie jest zmieniany.

s_org = 'pYThon proGramminG laNguAge'

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

print(s_org)
# pYThon proGramminG laNguAge

Jeśli chcesz użyć skonwertowanego łańcucha później, możesz przechowywać go w nowej zmiennej w następujący sposób.

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

Możliwe jest również nadpisanie oryginalnej zmiennej.

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

Obsługa znaków pełnowymiarowych i półpełnowymiarowych

Jeśli znak rozróżnia wielkość liter, jak np. alfabet, to zostanie on przekonwertowany na znaki jedno- i dwubajtowe.

Znaki, w których wielkość liter nie jest rozróżniana, takie jak cyfry i znaki chińskie, pozostają niezmienione. Przykład dotyczy metody upper(), ale to samo odnosi się do innych metod.

s_org = 'Pyhon Python 123'

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

str.upper(): zamienia wszystkie litery na duże

s_org = 'pYThon proGramminG laNguAge'

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

str.lower(): zamień wszystkie znaki na małe litery

s_org = 'pYThon proGramminG laNguAge'

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

str.capitalize(): zamienia pierwszą literę na wielką, resztę na małą

s_org = 'pYThon proGramminG laNguAge'

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

str.title(): konwertuje pierwszą literę słowa na wielką, a resztę na małą

Konwersja do tzw. sprawy tytułowej.

s_org = 'pYThon proGramminG laNguAge'

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

str.swapcase(): zamień wielkie litery na małe, małe na wielkie

Zamień duże i małe litery.

s_org = 'pYThon proGramminG laNguAge'

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

Określanie wielkich i małych liter

W poniższych przykładach metody są wywoływane bezpośrednio z literałów łańcuchowych, takich jak 'python', ale to samo jest prawdziwe, gdy są przechowywane w zmiennych, jak w poprzednich przykładach.

str.isupper(): określa czy wszystkie litery są wielkie

isupper() zwraca prawdę, jeśli zawiera co najmniej jeden znak wielkości liter i wszystkie z nich są wielkie, a fałsz w przeciwnym przypadku.

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

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

Jeśli wielkość liter ma znaczenie, to oceniane są nawet znaki dwubajtowe.

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

Jeśli dołączony jest choćby jeden znak rozróżniający wielkość liter, to znak rozróżniający wielkość liter jest ignorowany, ale jeśli nie dołączono żadnego znaku rozróżniającego wielkość liter (wszystkie znaki rozróżniają wielkość liter), to decyzją jest fałsz.

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

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

str.islower(): określa czy wszystkie znaki są małymi literami

islower() zwraca prawdę, jeśli zawiera co najmniej jeden znak wielkości liter i wszystkie z nich są małe, a fałsz w przeciwnym przypadku.

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

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

Jeśli wielkość liter ma znaczenie, to oceniane są nawet znaki dwubajtowe.

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

Jeśli dołączony jest choćby jeden znak rozróżniający wielkość liter, to znak rozróżniający wielkość liter jest ignorowany, ale jeśli nie dołączono żadnego znaku rozróżniającego wielkość liter (wszystkie znaki rozróżniają wielkość liter), to decyzją jest fałsz.

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

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

str.istitle(): Określ, czy dany przypadek jest przypadkiem tytułowym.

istitle() zwraca true jeśli łańcuch jest przypadkiem tytułu (pierwsza litera słowa jest wielka, reszta mała), false w przeciwnym wypadku.

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

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

Jeśli zawiera ona znaki rozróżniające wielkość liter, to będzie fałszywa, jeśli znaki rozróżniające wielkość liter są poprzedzone małą literą.

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

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

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

Zauważ, że nie ma wielu ciągów takich jak w powyższym przykładzie, ale realistyczne jest uwzględnienie liczb w liczbach porządkowych i innych przypadkach.

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

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

Jeśli nie są uwzględnione żadne znaki rozróżniające wielkość liter (wszystkie znaki nie rozróżniają wielkości liter), false.

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

Porównaj łańcuchy w sposób niewrażliwy na wielkość liter.

Podczas porównywania ciągów znaków, różne wielkie i małe litery nie są uważane za równoważne.

s1 = 'python'
s2 = 'PYTHON'

print(s1 == s2)
# False

Jeśli chcesz dokonać porównania bez uwzględniania wielkości liter, możesz użyć upper() lub lower(), aby przekonwertować te dwie wartości i porównać je.

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

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

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

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