Seznam řetězcových metod pro manipulaci s velkými a malými písmeny v jazyce Python

Podnikání

Řetězcový typ jazyka Python (str) je standardně vybaven vhodnými metodami pro manipulaci s velkými a malými písmeny. Můžete převádět mezi velkými a malými písmeny a určovat velikost písmen.

Zde jsou uvedeny následující informace.

  • Převod mezi velkými a malými písmeny
    • Základní použití
    • Zpracování znaků plné a poloviční velikosti
    • str.upper()Převést všechna písmena na velká
    • str.lower()Převést všechna písmena na malá
    • str.capitalize()Převeďte první písmeno na velké a ostatní na malé.
    • str.title()Převést první písmeno slova na velké a ostatní na malé.
    • str.swapcase()Převod velkých písmen na malá a malých na velká.
  • Určete velká a malá písmena
    • str.isupper(): Určete, zda jsou všechna písmena velká
    • str.islower(): Určete, zda jsou všechny znaky malé.
    • str.istitle(): Určete, zda se jedná o případ titulu.
  • Porovnávání řetězců bez rozlišení velkých a malých písmen

Převod mezi velkými a malými písmeny

Základní použití

Nejprve vysvětlím základní použití. Jako příklad použijeme metodu upper() pro psaní velkých písmen, ale totéž platí i pro ostatní metody.

Pro větší pohodlí píšeme „konverze“, ale v jazyce Python nejsou objekty typu string (str) aktualizovatelné, takže původní řetězec (v příkladu s_org) se sám o sobě nemění.

s_org = 'pYThon proGramminG laNguAge'

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

print(s_org)
# pYThon proGramminG laNguAge

Pokud chcete převedený řetězec použít později, můžete jej uložit do nové proměnné následujícím způsobem.

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

Je také možné přepsat původní proměnnou.

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

Zpracování znaků plné a poloviční velikosti

Pokud je znak citlivý na velikost písmen, například abeceda, bude převeden na jednobajtové i dvoubajtové znaky.

Znaky, u kterých se nerozlišují velká a malá písmena, jako jsou čísla a čínské znaky, zůstávají beze změny. Příklad se týká metody upper(), ale totéž platí i pro ostatní metody.

s_org = 'Pyhon Python 123'

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

str.upper(): převede všechna písmena na velká.

s_org = 'pYThon proGramminG laNguAge'

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

str.lower(): převede všechny znaky na malá písmena

s_org = 'pYThon proGramminG laNguAge'

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

str.capitalize(): převede první písmeno na velké, ostatní na malé.

s_org = 'pYThon proGramminG laNguAge'

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

str.title(): převede první písmeno slova na velké a ostatní na malé.

Převod na tzv. titulní případ.

s_org = 'pYThon proGramminG laNguAge'

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

str.swapcase(): převede velká písmena na malá, malá na velká

Vyměňte velká a malá písmena.

s_org = 'pYThon proGramminG laNguAge'

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

Určete velká a malá písmena

V následujících příkladech jsou metody volány přímo z řetězcových literálů, například 'python', ale totéž platí i v případě, že jsou uloženy v proměnných jako v předchozích příkladech.

str.isupper(): určí, zda jsou všechna písmena velká.

isupper() vrací true, pokud obsahuje alespoň jeden znak, který rozlišuje velká a malá písmena, a false v opačném případě.

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

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

Pokud je znak citlivý na velikost písmen, posuzují se i dvoubajtové znaky.

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

Pokud je obsažen i jediný znak rozlišující malá a velká písmena, je tento znak ignorován, ale pokud není obsažen žádný znak rozlišující malá a velká písmena (všechny znaky nerozlišují velká a malá písmena), je rozhodnutí nepravdivé.

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

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

str.islower(): určí, zda jsou všechny znaky malá písmena

islower() vrací true, pokud obsahuje alespoň jeden znak, který rozlišuje malá a velká písmena, a false v opačném případě.

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

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

Pokud je znak citlivý na velikost písmen, posuzují se i dvoubajtové znaky.

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

Pokud je obsažen i jediný znak rozlišující malá a velká písmena, je tento znak ignorován, ale pokud není obsažen žádný znak rozlišující malá a velká písmena (všechny znaky nerozlišují velká a malá písmena), je rozhodnutí nepravdivé.

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

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

str.istitle(): Určete, zda se jedná o případ title.

istitle() vrací true, pokud je řetězec title case (první písmeno slova je velké, ostatní malá), false v opačném případě.

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

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

Pokud obsahuje znaky nerozlišující malá a velká písmena, bude hodnota false, pokud znakům nerozlišujícím malá a velká písmena předchází malé písmeno.

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

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

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

Všimněte si, že řetězců, jako je výše uvedený příklad, není mnoho, ale je reálné zahrnout čísla v pořadových číslech a dalších případech.

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

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

Pokud nejsou zahrnuty žádné znaky rozlišující malá a velká písmena (všechny znaky nerozlišují velká a malá písmena), false.

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

Porovnávání řetězců bez rozlišení velkých a malých písmen

Při porovnávání řetězců se různá velká a malá písmena nepovažují za rovnocenná.

s1 = 'python'
s2 = 'PYTHON'

print(s1 == s2)
# False

Pokud chcete provést porovnání bez ohledu na velikost písmen, můžete použít funkci upper() nebo lower() pro převod a porovnání.

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

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

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

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