Python/Kenjiro995/Textové proměnné
Slučování textu
[editovat]Slučování je spojení více řetězců do jednoho. Něco na způsob sčítání čísel. Jako operátor použijeme znaménko + "plus".
text1 = 'tohle je řetězec'
text2 = "tohle taky"
retezec = 'tohle je "můj text" uvnitř textu'
print(text1 + " a " + text2 + " a " + retezec)
Výstup:
tohle je řetězec a tohle taky a tohle je "můj text" uvnitř textu
Replikace
[editovat]Replikace je "množení" řetězců. Zadaný řetězec se n-krát zopakuje, stačí ho "vynásobit" nějakým číslem.
retezec = "Bum! "
print(retezec * 7)
Výstup:
Bum! Bum! Bum! Bum! Bum! Bum! Bum!
print("*" * 26)
print("=" * 26)
print("." * 26)
print("-" * 26)
print("_" * 26)
print("A" * 26)
print("V" * 26)
Výstup:
************************** ========================== .......................... -------------------------- __________________________ AAAAAAAAAAAAAAAAAAAAAAAAAA VVVVVVVVVVVVVVVVVVVVVVVVVV
print("‡" * 26)
print("†" * 26)
print("o" * 26)
print("x" * 26)
Výstup:
‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ †††††††††††††††††††††††††† oooooooooooooooooooooooooo xxxxxxxxxxxxxxxxxxxxxxxxxx
Řezání
[editovat]Ze řetězců lze "extrahovat" jednotlivé prvky stejně jako ze seznamů. K tomuto účelu se používají hranaté závorky.
- název_seznamu[m] - vybere jediný znak
- název_seznamu[m:n] - vybere znaky v rozsahu m až n-1
Samozřejmě lze využít i speciality jako [:] - vybere celý řetězec, nebo [::-1] - převrátí řetězec.
retezec = "Honolulu"
print(retezec[0]) # vybere první znak
print(retezec[1:4]) # vybere znaky od indexu 1 až 4, tedy druhý až pátý znak
print(retezec[::2]) # vybere každý druhý znak
print("*" * 18)
print(retezec[:]) # vybere celý řetězec
print(retezec[::-1]) # převrátí řetězec, čte znaky pozpátku
Výstup:
H ono Hnll ****************** Honolulu ululonoH
Počet znaků v řetězci len()
[editovat]print(len("Ahoj!"))
print(len(" ")) # mezera se počítá jako znak
print(len("")) # prázdný řetězec počtíá jako nulu
Výstup:
5 1 0
a = "Python"
b = "Ahoj světe."
c = a + b
print(len(a))
print(len(b))
print(len(a), "+", len(b), "=", len(a) + len(b))
print(c, ":", len(c))
Výstup:
6 11 6 + 11 = 17 PythonAhoj světe. : 17
Provnání řetězců
[editovat]Řetězce se porovnávají podle abecedy. Výsledkem je logická hodnota True (pravda) nebo False (nepravda).
print("a" < "b")
print("b" < "a")
print("c" == "c")
print("ab" >= "a")
print("e" <= "df")
print("java" == "javascript")
print("python" != "php")
Výstup:
True False True True False False True
porovnani = "a" < "b"
print(porovnani)
Výstup:
True
Metody
[editovat]Řetězce na sobě mají mnoho užitečných metod. Díky nim lze řetězce jednoduše upravovat. Zde uvedu jen některé z nich.
count()
[editovat]Vrátí počet podřetězců v jiném řetězci, parametrem je hledaný podřetězec. Lze zadat i výřez.
retezec = "alabama"
print(retezec.count("a")) # prohledá řetězec kolikrát najde "a"
print(retezec.count("a", 1, 4)) # to samé jako retezec[1:4].count("m")
Výstup:
4 1
endswith()
[editovat]Vrátí logickou hodnotu (True/False) jestli řetězec končí zadaným řetězcem, který předáváme jako parametr. Lze zadat i výřez.
retezec = "alabama"
print(retezec.endswith("a")) # řetězec končí na "a" proto True
print(retezec.endswith("m")) # řetězec nekončí na "m" ale na "a" proto False
Výstup:
True False
find()
[editovat]Vrátí index nejlevější pozice podřetězce v jiném řetězci. Hledaný podřetězec předáváme jako parametr. Pokud není nalezen, vrátí -1 . Lze zadat i výřez.
retezec = "Wolfgang Amadeus Mozart"
print(retezec.find("Wolfgang")) # vrátí 0 protože se "Wolfgang" nachází v řetězci
print(retezec.find("Beethoven")) # vrátí -1 protože se "Beethoven" nenachází v řetězci
Výstup:
0 -1
isalpha()
[editovat]Vrátí booleovskou hodnotu True, pokud jsou všechny znaky v řetězci písmenné znaky a řetězec obsahuje minimálně jeden znak. Jinak vrací False.
prvni_retezec = "Airbus"
print(prvni_retezec.isalpha()) # vrátí True protože v řetězci jsou pouze znaky abecedy
druhy_retezec = "Boeing 737"
print(druhy_retezec.isalpha()) # vrátí False protože v řetězci jsou i čísla
Výstup:
True False
isdigit()
[editovat]Vrátí booleovskou hodnotu True, pokud jsou všechny znaky v řetězci číselné znaky (0 - 9) a řetězec obsahuje minimálně jeden znak. Jinak vrací False.
prvni_retezec = "123"
print(prvni_retezec.isdigit()) # vrátí True protože v řětezci jsou pouze čísla
druhy_retezec = "boeing737"
print(druhy_retezec.isdigit()) # vrátí False protože v řetězci jsou i znaky abecedy
Výstup:
True False
islower()
[editovat]Vrátí booleovskou hodnotu True, pokud jsou všechny znaky v řetězci malá písmena a řetězec obsahuje minimálně jeden znak. Jinak vrací False.
prvni_retezec = "arizona"
print(prvni_retezec.islower()) # vrátí True protože v řetězci jsou všechna malá písmena
druhy_retezec = "AriZona"
print(druhy_retezec.islower()) # vrátí False protože v řetězci josu i velká písmena
Výstup:
True False
isupper()
[editovat]Vrátí booleovskou hodnotu True, pokud jsou všechny znaky v řetězci velká písmena a řetězec obsahuje minimálně jeden znak. Jinak vrací False.
prvni_retezec = "ARIZONA"
print(prvni_retezec.isupper()) # vrátí True protože všechny znaky jsou velká písmena
druhy_retezec = "arizona"
print(druhy_retezec.isupper()) # vrátí False protože všechny znaky jsou malá písmena
Výstup:
True False
lower()
[editovat]Převede znaky v řetězci na malá písmena.
prvni_retezec = "ARIZONA"
print(prvni_retezec.lower()) # převede všechny zanaky na malá písmena
druhy_retezec = "PythoN"
print(druhy_retezec.lower()) # převede všechny zanaky na malá písmena
Výstup:
arizona python
replace()
[editovat]Nahradí v řetězci podřetězec jiným podřetězcem a vrátí výsledek jako nový řetězec. Parametry metody jsou hledaný podřetězec a podřetězec, kterým jej chceme nahradit.
retezec = "C-sharp je nejlepší!"
print(retezec)
retezec = retezec.replace("C-sharp", "Python")
print(retezec)
Výstup:
C-sharp je nejlepší! Python je nejlepší!
startswith()
[editovat]Vrátí booleovskou hodnotu (True/False) jestli řetězec začíná zadaným podřetězcem, který předáme jako parametr. Lze zadat i výřez.
retezec = "arizona"
print(retezec.startswith("a")) # vrátí True protže řetězec začíná na "a"
print(retezec.startswith("m")) # vrátí False protože řětězec nezačíná na "m" ale na "a"
Výstup:
True False
upper()
[editovat]Převede znaky v řetězci na velká písmena.
prvni_retezec = "arizona"
print(prvni_retezec.upper()) # převede těxt na velká písmena
druhy_retezec = "PythoN"
print(druhy_retezec.upper()) # převede těxt na velká písmena
Výstup:
ARIZONA PYTHON
Převod prvního znaku na velké písmeno a doplnění tečky za větou:
a = "python je jednoduchý jazyk"
retezec = a[0].upper() + a[1::] + "."
print(retezec)
Výstup:
Python je jednoduchý jazyk.
Exituje i pohodlnější řešení, protože funkce capitalize() převede na velké písmeno pouze první znak:
print("python je jednoduchý jazyk".capitalize() + ".")
Výstup:
Python je jednoduchý jazyk.
Můžeme prevést na velká písmena jen určitou výseč třeba všechno od druhého znaku dál:
a = "python je jednoduchý jazyk"
retezec = a[0] + a[1::].upper() + "."
print(retezec)
Výstup:
pYTHON JE JEDNODUCHÝ JAZYK.
Formátování textu
[editovat]Formátování textu nám umožňuje vkládat do něj jednoduše proměnné pomocí zástupných znaků. Docílíme tak přehlednějšího kódu, než kdybychom řetězec nastavovali.
prvni_retezec = "Python"
retezec = "{0} je nejlepší!".format(prvni_retezec)
print(retezec)
Výstup:
Python je nejlepší!
prvni_retezec = "Python"
retezec = "{0} je nejlepší!"
retezec = retezec.format(prvni_retezec)
print(retezec)
Výstup:
Python je nejlepší!
Více argumentů vložíme následujícím způsobem:
prvni_retezec = "Python"
druhy_retezec = "nejlepší"
retezec = "{0} je {1}!"
retezec = retezec.format(prvni_retezec, druhy_retezec)
print(retezec)
Výstup:
Python je nejlepší!
prvni_retezec = "Python"
druhy_retezec = "Nejlepší"
retezec = "{1} je {0}!"
retezec = retezec.format(prvni_retezec, druhy_retezec)
print(retezec)
Výstup:
Nejlepší je Python!