Python/Kenjiro995/Textové proměnné

Z Wikiverzity
Skočit na navigaci Skočit na vyhledávání

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!