Ř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í
- Zpracování znaků plné a poloviční velikosti
- str.upper(): převede všechna písmena na velká.
- str.lower(): převede všechny znaky na malá písmena
- str.capitalize(): převede první písmeno na velké, ostatní na malé.
- str.title(): převede první písmeno slova na velké a ostatní na malé.
- str.swapcase(): převede velká písmena na malá, malá na velká
- Určete velká a malá písmena
- 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