Python ponúka niekoľko základných údajových typov, ktoré nám umožňujú pracovať s rôznymi druhmi dát. Okrem čísel (int, float) existují aj ďalšie dôležité typy: reťazce (str), zoznamy (list) a n-tice (tuple). Každý typ má svoje špecifické vlastnosti a metódy.
Reťazce predstavujú text v Pythone. Môžeme ich vytvoriť pomocou jednoduchých alebo dvojitých úvodzoviek. Napr. meno = 'J.Bond-agent007', alebo veta = "I'm happy!". Python poskytuje veľa užitočných metód na prácu s reťazcami.
len(retazec), vracia nezáporné celé číslo. Napríklad:
Pre prácu s reťazcami môžeme použiť rôzne metódy, vždy sa musí uviesť s ktorým reťazcom chceme niečo urobiť, za názvom reťazca treba napísať bodku a za tým názov metódy a zátvorky (niektoré metódy požadujú do zátvorky uviesť parametre metódy). Viď zoznam metód v tabuľke.
| Metóda | Popis | Príklad |
|---|---|---|
| .upper() | Zmení na veľké písmená | "ahoj".upper() → "AHOJ" |
| .lower() | Zmení na malé písmená | "AHOJ".lower() → "ahoj" |
| .title() | Každé slovo začne veľkým písmeno, zvyšné budú malým | "adAM dRAk".title() → Adam Drak |
| .strip() | Odstráni medzery na začiatku a konci reťazca | " Dobré ráno ".strip() → "Dobré ráno" |
| .find(čo) | Nájde pozíciu podreťazca | "ahoj".find("ho") → 1 |
| .replace(čo, čím) | Nahradí časť reťazca | "dovidenia".replace("i", "I") → "dovIdenIa" |
| .split(oddelovač) | Rozdelí reťazec na zoznam | "a,b,c".split(",") → ["a", "b", "c"] |
Každá metóda vracia požadovaný výstup, avšak pôvodný reťazec sa použitím metódy nezmení, nakoľko ide o nemeniteľný typ (immutable). Takto získanú hodnotu si však môžeme niekam uložiť. V prípade, ak chceme pôvodný reťazec zmeniť, tak ho uložíme do tej istej premennej (tak ho vlastne prepíšeme).
Zoznamy sú jedným z najdôležitejších údajových typov v Pythone. Umožňujú nám uchovávať viacero hodnôt v jednej premennej. Zoznamy sú meniteľné (mutable) - môžeme pridávať, odstraňovať a meniť ich prvky. Príklady zoznamov: ovocie = ["jablko", "banán", "pomaranč"], alebo cisla = [1, 5, 3, 9, 2], alebo aj zoznam s prvkami rôzneho typu: zmiesany = ["text", 42, 3.14, True].
len(zoznam), vracia nezáporné celé číslo. Napríklad:
Pre prácu so zoznamami môžeme použiť rôzne metódy, vždy sa musí uviesť s ktorým zoznamom chceme niečo urobiť, zatým napísať bodku a za tým názov metódy a zátvorky (niektoré metódy požadujú do zátvorky uviesť parametre metódy). Viď zoznam metód v tabuľke.
| Metóda | Popis | Príklad |
|---|---|---|
| .append(prvok) | Pridá prvok na koniec zoznamu | zoznam=['a','b','c'] zoznam.append('nový') → ['a','b','c','nový'] |
| .insert(index, prvok) | Vloží prvok na určitú pozíciu | zoznam=['a','b','c'] zoznam.insert(1, 'tu') → ['a','tu','b','c'] |
| .remove(prvok) | Odstráni prvý výskyt prvku | zoznam=['a','b','c','b'] zoznam.remove("b") → ['a','c','b'] |
| .count(prvok) | Spočíta výskyty prvku | zoznam=['a','b','c','b'] pocet = zoznam.count('b') → pocet je 2 |
| .index(prvok) | Vráti index prvého výskytu | zoznam=['a','b','c','b'] pozicia = zoznam.index('b') → pozicia je 1 |
| .sort() | Zoradí prvky zoznamu od najmenšieho / podľa abecedy | cisla=[3,5,1,4] cisla.sort()→ [1,3,4,5] slova=['cíp','buk','bod'] slova.sort()→ ['bod','buk','cíp'] |
| .reverse() | Obráti poradie prvkov | zoznam=['a','b','c','b'] zoznam.reverse() → ['b','c','b','a'] |
Každá metóda na zozname mení priamo pôvodný zoznam.
POZOR: Ak vytovríme kópiu zoznamu priamo príkazom kopia = zoznam, všetko čo rôznymi metódami zmeníme v pôvodnom zozname, zmení sa aj na kópii.
Ak si chceme urobiť kópiu zoznamu tak, aby sme prvky originálu nemenili, musíme to urobiť pomocou rezov: kopia = zoznam[:] (t.j. vytvoríme úplne nový zoznam kopia, kde sa vložia prvky zo zoznamu kopia od prvého prvku až po posledný). V tomto prípade, ak urobíme zmenu v jednom zozname, ten druhý to neovplyvní.
Výstup:
N-tice sú podobné zoznamom, ale sú nemeniteľné (immutable). Raz vytvorené, nemôžeme ich zmeniť. Používajú sa pre dáta, ktoré sa nemenia, ako sú súradnice, farby RGB alebo osobné údaje.
Výstup:
Vytvorte program, ktorý od užívateľa načíta URL adresu obrázka (napr. https://gymmoldava.sk/fll/obr.png) a program následne skontroluje, či ide o platnú URL adresu s obrázkom typu .png alebo .jpg. Takáto adresa musí začínať reťazcom "https://", obsahuje minimálne 3 znaky "/" a končí na ".png" alebo ".jpg".
Pomôcka:
Použite vhodné metódy na prácu s reťazcom.
Vytvorte prázdny zoznam a následne doňho pridávajte filmy, ktoré postupne zadá užívateľ. Pre ukončenie zadávania má užívateľ zadať znak *. Tento zoznam filmov vypíšte a potom ešte nakoniec vypíšte zoznam filmov abecedne zoradený, každý film nech je vždy na novom riadku.
Pomôcka:
filmy = []
vstup = input("Zadaj názov filmu: ")
filmy.append(vstup)
1. Ktorá metóda správne zmení reťazec na veľké písmená?
a)text.upper()text.uppercase()text.big()upper(text)
2. Čo vráti tento kód?
text = "Python"
print(text[1:4])
"Pyt""yth""ytho""ython"
3. Ktorá metóda pridá nový prvok na koniec zoznamu?
a)zoznam.add()zoznam.append()zoznam.insert()zoznam.push()
4. Čím sa líši tuple od list ?
5. Ktorý príkaz správne rozdelí reťazec na zoznam slov?
a)"ahoj svet".split(' ')"ahoj svet".divide()"ahoj svet".separate()split("ahoj svet")
6. Ako vytvoríte prázdnu n-ticu (tuple)?
a)tuple = [ ]tuple = ( )tuple = { }tuple = tuple()
7. Ktorá metóda vráti pozíciu prvého výskytu prvku v zozname?
a)zoznam.find(prvok)zoznam.search(prvok)zoznam.index(prvok)zoznam.position(prvok)
8. Ako získate posledný prvok zoznamu data?
data[-1]data[len(data)]data[0]data.last()9. Ktorá metóda reťazca text prevedie všetky prvé písmená každého slova na veľké písmená?
text.upper()text.lower()text.title()text.capitalize()10. Ktorý príkaz vyberie prvé tri prvky zoznamu cisla?
cisla[1:3]cisla[3:-1]cisla[0:2]cisla[0:3]