Ak sa v kóde opakuje časť kódu na rôznych miestach, môžeme ho napísať len raz - ako procedúru (podprogram) a na týchto miestach potom len spustiť danú procedúru. Procedúra je teda skupina príkazov, ktorá má svoj názov a dá sa ním spustiť v ďalšom kóde.
# proceduru definujem pomocou klucoveho slova 'def'
# prikazy odsadene pod tymto riadkom tvoria telo procedury
def overPouzivatela():
meno = input()
heslo = input()
if meno == "admin" and heslo = "123456":
print("overenie uspesne")
else:
print("nespravne meno/heslo")
# teraz mozem proceduru kdekolvek zavolat a spustit pomocou prikazu
overPouzivatela()
Procedúra môže mať parametre, sú to hodnoty, s ktorými pracuje. Dá sa tak napísať o čosi všeobecnejšia procedúra, ktorá sa správa rôzne, v závislosti od hodnôt, ktoré práve dostane, keď ju voláme...
# proceduru definujem pomocou klucoveho slova 'def'
# prikazy odsadene pod tymto riadkom tvoria telo procedury
def overPouzivatela(meno, heslo):
if meno == "admin" and heslo = "123456":
print("overenie uspesne")
else:
print("nespravne meno/heslo")
# teraz mozem proceduru kdekolvek zavolat pomocou prikazu
overPouzivatela("Gustáv", "gg123")
Procedúra môže mať aj návratovú hodnotu, teda po jej volaní sa na miesto, kde ju voláme dosadí vrátená hodnota. Príkaz input() má napríklad návratovú hodnotu typu STRING, je ňou práve to, čo zadal používateľ, príkaz round() má zas návratovú hodnotu typu float, vráti zadané zaokrúhlené číslo...
def scitaj(x, y):
sucet = x + y
return sucet # kľúčové slovo RETURN označuje návratovú hodnotu
# pozor! volaním RETURN sa ukončí vykonávanie procedúry
print("tento príkaz sa nikdy nevykoná :(") # tento príkaz sa vážne nevykoná - je za 'return'
# teraz mozem proceduru kdekolvek zavolat pomocou prikazu 'scitaj'
c = scitaj(4, 10)
print("súčet čísel 4 a 10 je", c)
# generátor náhodných čísel je v balíčku 'random'
import random
# náhodné číslo z intervalu [1, 10] vrátane
a = random.randint(1, 10)
# náhodnú hodnotu zo zoznamu
a = random.choice(["red", "green", "blue"])
# náhodné desatinné číslo z intervalu [0, 1]
a = random.random()
# náhodné číslo z intervalu s možným rozostupom - ako range()
# pre viac info pozrite dokumentáciu, táto funkcia vie dosť pomôcť
random.randrange(start, stop, step)