testovac.sk

String

String je po slovensky textový reťazec, je to dátový typ. Dátové typy sú tiež integer - celé číslo alebo napríklad float - desatinné číslo. String môžeme mať uložený v premennej, jeho konkrétnu hodnotu "obaľujeme" do úvodzoviek. String tiež vzniká použitím funkcie input() - tá od používateľa vždy "prinesie" string. (A v prípade, že chceme s hodnotou od používateľa pracovať ako s číslom, musíme ju pretypovať - zmeniť jej dátový typ pomocou funkcie float alebo int)

# premenná 'meno' reprezentuje hodnotu dátového typu string
meno = "Elena"

# aj táto premenná bude po načítaní obsahovať hodnotu s  dátovým typom string
email = input("prosím zadaj email")

# všimnite si, Že aj 'prompt' - argument funkcie input() je string!

String a vstavané funkcie

String má v pythone funkcie, ktoré môžeme volať priamo na hociktorom stringu, robíme to tak, že za oúvodzovkovaný string alebo za premennú, ktorá obsahuje hodnotu dátového typu string napíšme bodku, názov funkcie a prázdne zátvorky (tie označujú volanie funkcie)

Vyzerá to nejako takto:

meno = "Jozko".funkcia()
email = input()
email = email.inaFunkcia()

Funkcia string upraví, preto je potrebné novú, upravenú hodnotu niekam uložiť (do premennej), aby sme s ňou mohli ďalej pracovať.

užitočné funkcie

capitalize() # prvé písmeno bude veľkým
upper() # konvertuje string na veľké písmenká
lower() # všetky písmenká dá na malé
strip() # odstráni medzery, tabulátory a prázdne riadky z konca
islower() # vráti True ak sú všetky písmenká malé (dá sa použiť v IF)

# napríklad
meno = input()
meno = meno.capitalize() # zabezpečí, že začne veľkým
print("ahoj", meno)

# funkciu môžem volať aj priamo v inej funkcii...
meno = input()
print("ahoj", meno.capitalize())

# mohlo by to byť aj takto (nie moc prehľadné, ale funkčné)
print("ahoj", input().capitalize())

Zoznam zaujímavých funkcií aj s príkladom použitia nájdete na W3 schools

Knižnica string

Užitočné funkcie a konštanty na prácu s textom poskytuje knižnica string. Podobne ako knižnice tkinter alebo random ju treba pred použitím importovať. Na začiatok svojho súboru napíšte:

import string

Potom môžete pristupovať k rôznym konštantám a funkciám:

import string

male_pismenka = string.ascii_lowercase
velke_pismena = string.ascii_uppercase
angl_pismena = string.ascii_letters
cisla = string.digits

print(male_pismenka) # 'abcdefghijklmnopqrstuvwxyz'
print(velke_pismena) # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
print(cisla)         # '0123456789'

Pozrite si aj ďalšie funkcie tejto knižnice v dokumentácii.

String a if

Niektoré vstavané funkcie vracajú návratovú hodnotu typu boolean - pravdivostná hodnota, tento typ pozná len dve hodnoty True a False, označujú, či niečo platí alebo nie. Napríklad funkcia islower() vráti hodnotu True, ak bola zavolaná na string-u, ktorý ma všetky písmenka malé, inak vráti False. Toto sa dá použiť v konštrukcii IF...

meno = "Ferko"
if meno.islower():
    print("Zabudol si na veľké písmenko, mená sa píšu s veľkým písmenkom!")
else:
    print("ok")

V kombinácii s konŠtrukciou in môžeme v podmienke zisťovať, či je jeden string súčasťou druhého (potom ho voláme substring):

if 'ahoj' in 'ahoj, ako sa mas?':
    print("Nachadza sa tam slovo ahoj")

String a cyklus

Pomocou špeciálnej konštrukcie in môže cyklus for do iteračnej premennej priraďovať postupne všetky písmenká zo string-u:

for pismenko in "testovac":
    print(pismenko)

Toto by vypísalo:

t
e
s
t
o
v
a
c

funkcia print

Funkcia print vypíše všetky svoje argumenty (to, čo jej napíšeme do zátvoriek). Robí ale aj pár vecí navyše... ak jej dáme viac argumentov, pred vypísaním ich "pozliepa" jednou medzerou a tiež vždy za koncom výpisu "stlačí enter", teda ďalší print() už vypisuje svoje argumenty do ďalšieho riadku. Toto nie vždy potrebujeme...

print(1,2,3)
print(4,5,6)

vypíše

1 2 3
4 5 6

Print-u môžeme nanútiť, aby namiesto medzery argumenty zliepal niečím iným pomocou pomenovaného parametra sep:

print(1,2,3, sep="x")
print(4,5,6)

dostaneme:

1x2x3
4 5 6

Môžeme tiež určiť, čo print napíše za všetky argumenty, na to používame pomenovaný parameter end

print(1,2,3, sep="x", end="KONIECRIADKU")
print(4,5,6)

dostaneme:

1x2x3KONIECRIADKU4 5 6

Cvičenia