›_ebskola.lv
Prog I · 4. tēma · 6 stundas - Python · funkcijas · modularitāte

Funkcijas //
un modularitāte

Iemācies sadalīt programmu pārskatāmos blokos ar def. Apgūsti parametrus, return, scope un koda sadalīšanu moduļos.

6 stundas def · return · scope Skaitļu minētājs
def · parametri · return type hints · docstring modularitāte · PEP 8
# 01 stundu plāns

6 stundas - no def līdz moduļiem

Apgūsti funkciju izveidi, parametrus, vērtību atgriešanu, scope noteikumus un koda organizēšanu failos.

noslēguma projekts
def aprēķināt(a, b) parametri aprēķināt(3,5) aprēķināt(10,2) return rezultāts // def funkcija
Python · deffunkcijas

Funkciju definēšana un parametri

def atslēgvārds, parametri un argumenti, noklusētās vērtības, type hints def f(x: int) -> str.

4.1 stundaatvērt ↗
Globālais scope Funkcijas scope lokāls_mainīgais return vērtība globāls mainīgais // scope LEGB
Python · scopemainīgie

Mainīgo redzamība (Scope) un return

LEGB kārtula - Local → Enclosing → Global → Built-in, return vērtības, vairāki return.

4.2 stundaatvērt ↗
main.py import spele_logika utils.py palīgfunkcijas spele_logika.py spēles funkcijas dati.py datu struktūras // import moduļi
Python · importmodularitāte

Modularitāte: Koda sadalīšana failos

Programmas sadalīšana moduļos, import, from module import func, if __name__ == "__main__".

4.3 stundaatvērt ↗
❌ Pirms PEP 8 x=5+3 def myFunc(): A=input() return A ✓ Pēc PEP 8 x = 5 + 3 def my_func(): """Docs.""" a = input() return a // PEP 8 stils
Python · PEP 8koda stils

PEP 8 un koda struktūras higiēna

PEP 8 noteikumi: snake_case, atstarpes ap operatoriem, 4 atstarpes indentācijai, docstrings.

4.4 stundaatvērt ↗
SĀKUMS ievadīt minējumu pareizi? BEIGAS // algoritma shēma
plānošanadizains

Spēles plānošana ar algoritmu shēmām

Plūsmas diagrammas pirms kodēšanas - loģikas vizualizācija, pseido-kods, soļu saraksts.

4.5 stundaatvērt ↗
$ python skaitlu_minetajs.py
Python · funkcijasprojekts

Noslēguma projekts: Skaitļu minētājs

Spēle sadalīta moduļos - spele_logika.py, main.py. Funkcijas, parametri, return, PEP 8.

4.6 projektsatvērt ↗
# 02 špikeris

4. tēmas funkciju špikeris

Funkciju pamatsintakse

# Pamata funkcija ar type hints un docstring
def aprēķināt_vidējo(skaitļi: list[float]) -> float:
    """Atgriež saraksta vidējo vērtību."""
    if not skaitļi:
        return 0.0
    return sum(skaitļi) / len(skaitļi)

# Noklusētie parametri
def sveikt(vārds: str, valoda: str = "lv") -> str:
    if valoda == "lv":
        return f"Sveiks, {vārds}!"
    return f"Hello, {vārds}!"

# Vairāki return vērtības (kā tuple)
def dalīt(a: int, b: int) -> tuple[int, int]:
    return a // b, a % b  # dalījums, atlikums

dalījums, atlikums = dalīt(17, 5)  # unpacking

Modularitāte - koda sadalīšana failos

# spele_logika.py
def pārbaudīt(minējums: int, slepenais: int) -> str:
    if minējums == slepenais:
        return "Pareizi!"
    return "Augstāk ↑" if minējums < slepenais else "Zemāk ↓"

# main.py
from spele_logika import pārbaudīt
import random

slepenais = random.randint(1, 100)
while True:
    minējums = int(input("Minē (1-100): "))
    rezultāts = pārbaudīt(minējums, slepenais)
    print(rezultāts)
    if rezultāts == "Pareizi!":
        break
$ python main.py # modulāra programma - katrs fails pilda savu lomu # def + return + import = tīrs, atkārtoti izmantojams kods