Promenljive, liste i funkcije u MicroPython-u


Da bi program mogao da pamti podatke, ponavlja radnje i rešava složenije zadatke, koristimo promenljive, liste (nizove) i funkcije.

Ovi pojmovi su veoma važni jer se stalno koriste u projektima, igrama i algoritmima (npr. sortiranje, brojanje koraka, merenja senzora).


Promenljive


Promenljiva je mesto u memoriji gde čuvamo neku vrednost. Vrednost može da se menja tokom rada programa.



from microbit import *

# Primer promenljivih
broj = 5           # cela vrednost
temperatura = 23   # mera u °C
ime = "Ana"        # tekst

display.scroll(broj)  # prikazuje "5" na LED matrici

U MicroPython-u nije potrebno posebno navoditi tip promenljive — Python sam prepoznaje da li je u pitanju broj, tekst ili nešto drugo.


Liste (nizovi)


Lista (niz) je promenljiva koja može da sadrži više vrednosti. Koristimo je kada imamo više podataka istog tipa.



# Lista brojeva
brojevi = [3, 7, 2, 9, 5]

display.scroll(brojevi[0])  # prvi element: 3

Elementima liste pristupamo pomoću indeksa. Indeksi počinju od 0.


brojevi[2] = 10   # menjamo treći element (prethodno 2)

Petlja kroz listu


brojevi = [1, 2, 3, 4]

for broj in brojevi:
    display.show(broj)
    sleep(500)  # polusekunda između prikaza

Ovo je veoma korisno za obradu merenja sa senzora, ili prikaz niza vrednosti.


Funkcije


Funkcija je deo koda koji obavlja određeni zadatak i može se pozivati više puta.



def pozdrav():
    display.scroll("Zdravo!")

Funkciju pozivamo jednostavno po imenu:



pozdrav()

Funkcije sa parametrima


def prikazi_broj(broj):
    display.show(broj)

prikazi_broj(7)

Parametri omogućavaju da ista funkcija radi sa različitim vrednostima.


Primer: obrada podataka iz liste



merenja = [20, 21, 22, 23]

def prosecna_temperatura(lista):
    zbir = 0
    for vrednost in lista:
        zbir += vrednost
    return zbir / len(lista)

avg = prosecna_temperatura(merenja)
display.scroll(int(avg))

Ovaj princip ćeš koristiti u projektima sa senzorima i analizom podataka.


Mini zadaci (detaljno objašnjeni)


Zadatak 1 — Prikaz brojeva

Napravi listu sa 5 brojeva po tvom izboru. Koristi for petlju da prikažeš svaki broj na LED matrici sa pauzom 500 ms između prikaza.


# Lista sa brojevima
brojevi = [4, 7, 1, 9, 3]

for broj in brojevi:
    display.show(broj)
    sleep(500)

Zadatak 2 — Funkcija za obaveštenje

Napravi funkciju obavesti_ime koja prima ime i prikazuje ga na matrici. Pozovi funkciju sa svojim imenom.


def obavesti_ime(ime):
    display.scroll(ime)

obavesti_ime("Ana")

Zadatak 3 — Kombinacija liste i funkcije

Napravite listu sa 3 broja. Napiši funkciju koja vraća zbir brojeva u listi i prikaži rezultat.


def zbir_brojeva(lista):
    zbir = 0
    for n in lista:
        zbir += n
    return zbir

moji_brojevi = [5, 2, 8]
rezultat = zbir_brojeva(moji_brojevi)
display.scroll(rezultat)

Zadatak 4 — Animacija brojeva

Napravite listu sa 5 brojeva i pomoću for petlje prikažite svaki broj 1 sekundu, zatim obrnuto od poslednjeg do prvog.


brojevi = [1, 2, 3, 4, 5]

# Prikaz unapred
for n in brojevi:
    display.show(n)
    sleep(1000)

# Prikaz unazad
for n in reversed(brojevi):
    display.show(n)
    sleep(1000)

Zadatak 5 — Kombinacija sa dugmadima

Dok korisnik drži dugme A, prikazuje se prva lista brojeva. Dok drži dugme B, prikazuje se druga lista.


from microbit import *

lista_A = [1,2,3]
lista_B = [9,8,7]

while True:
    if button_a.is_pressed():
        for n in lista_A:
            display.show(n)
            sleep(500)
    elif button_b.is_pressed():
        for n in lista_B:
            display.show(n)
            sleep(500)

Mini zadaci za samostalno rešavanje


Slični zadaci kao prethodni, ali sa minimalnim smernicama — pogodni za vežbu i eksperimentisanje.

  1. Napravi funkciju koja prima listu brojeva i prikazuje samo parne brojeve.
  2. Napravi listu sa 4 slike (Image) i prikaži ih u animaciji.
  3. Napiši funkciju koja vraća najveći broj u listi i koristi je za animaciju.
  4. Napravite listu sa 5 brojeva i prikazuj ih na LED matrici dok se pritisne dugme A.
  5. Napiši funkciju koja prima ime i broj, i prikaži ime i broj na LED matrici sa delay 500 ms.

Link ka dodatnoj lekciji


Više primera i praktične primene promenljivih u micro:bit projektima možeš pronaći na strani: Upotreba promenljivih u projektima micro:bit-a

Na toj stranici ćeš naučiti kako promenljive pomažu u kreiranju brojača, kvizova i animacija sa senzorima.

Skriveni mini kviz — Promenljive, liste i funkcije

Klikni na kviz i proveri da li razumeš osnovne koncepte: promenljive, liste i funkcije u MicroPython-u.

Otvori kviz

Mini kviz: Promenljive, liste i funkcije

1. Koja promenljiva čuva tekst?


ime = "Ana"
broj = 5



2. Šta vraća len(lista)?


brojevi = [1,2,3,4]



3. Kako pozivamo funkciju pozdrav()?




4. Koji kod prikazuje sve elemente liste na LED matrici?


brojevi = [2, 4, 6]



5. Šta vraća funkcija ako nema return?


def test():
    x = 5






Povezivanje sa micro:bit igrama


Ako želiš da primeniš ono što si naučio o promenljivama, listama i funkcijama, pogledaj lekciju: Igrice i micro:bit .

Tamo ćeš naučiti kako se funkcije koriste za:

  • pokretanje i zaustavljanje igre
  • prikazanje animacija igrača i prepreka
  • praćenje rezultata i stanja igre pomoću promenljivih i lista

Primeri u MicroPython-u

1. Prikaz broja života igrača na LED matrici:


from microbit import *

lives = 3

def prikazi_život():
    display.show(lives)

while True:
    prikazi_život()
    sleep(1000)

Objašnjenje:

  • Promenljiva lives čuva broj života.
  • Funkcija prikazi_život() prikazuje vrednost na LED matrici.
  • Beskonačna petlja stalno osvežava prikaz.

2. Animacija prepreka:


obstacles = [Image.ARROW_N, Image.ARROW_W, Image.ARROW_E]

while True:
    for o in obstacles:
        display.show(o)
        sleep(500)

Objašnjenje:

  • Lista obstacles čuva niz slika prepreka.
  • Petlja for prolazi kroz sve prepreke i prikazuje ih na LED matrici.

3. Funkcija koja reaguje na dugme:


def akcija_dugmeta():
    if button_a.is_pressed():
        display.show("A")
    elif button_b.is_pressed():
        display.show("B")

while True:
    akcija_dugmeta()
    sleep(100)

Objašnjenje:

  • Funkcija akcija_dugmeta() proverava dugmad i reaguje.
  • Beskonačna petlja stalno poziva funkciju i prati stanje korisnika.

Ovi primeri pokazuju kako kombinovanje **promenljivih, lista i funkcija** pomaže u kreiranju interaktivnih igara.

Mini projekti — Micro:bit igrice i eksperimenti


Ovi zadaci kombinuju prethodne lekcije i pomažu ti da praktično primeniš promenljive, liste, funkcije, dugmad i LED matricu.


Zadatak 1: Brojač pritisaka dugmeta

Kreiraj program koji broji koliko puta je pritisnuto dugme A i prikazuje rezultat na LED matrici.

Uputstvo:

  • Napravite promenljivu broj_pritisaka koja čuva broj pritisaka.
  • Koristi button_a.is_pressed() da detektuješ pritisak.
  • Kreiraj funkciju prikazi_broj() koja prikazuje trenutni broj pritisaka na LED matrici.
  • Dodaj kratku pauzu (sleep()) između očitavanja da brojanje bude stabilno.

Napomena: odličan primer za učenje kombinovanja promenljivih i funkcija sa dugmadima.


Zadatak 2: Animacija brojeva

Prikazuj brojeve od 1 do 5 jedan po jedan na LED matrici, a zatim se ponovo vrati na 1 i nastavi u beskonačnoj petlji.

Uputstvo:

  • Napravite listu brojevi = [1,2,3,4,5].
  • Kreiraj funkciju prikazi_brojove() koja koristi for petlju da prikaže svaki broj sa pauzom.
  • Koristi while True da se animacija stalno ponavlja.

Napomena: ovaj zadatak vežba listu, petlju i funkciju u jednom.


Zadatak 3: Mini igra — izbegavanje prepreka

Simuliraj igru u kojoj tvoj lik (LED tačka) „beži“ od prepreka koje se pojavljuju na LED matrici.

Uputstvo:

  • Kreiraj promenljivu igrac = Image("00100:00100:00100:00100:00100") ili slično.
  • Napravite listu sa slikama prepreka, npr. prepreke = [Image.ARROW_N, Image.ARROW_W, Image.ARROW_E].
  • Kreiraj funkciju prikazi_igraca() i prikazi_prepreke().
  • Koristi button_a i button_b za pomeranje igrača levo/desno.
  • Koristi while True i sleep() za animaciju.

Napomena: odličan projekt za kombinovanje svega što smo naučili: promenljive, liste, funkcije, dugmad i LED matricu.


Zadatak 4: Brojač animiranih srca

Pravi program koji prikazuje animaciju srca, a svaki put kada se pritisne dugme A, povećava „broj srca“ i prikazuje ga.

Uputstvo:

  • Kreiraj promenljivu broj_srca i inicijalizuj na 1.
  • Kreiraj funkciju prikazi_srca() koja koristi for petlju da prikaže broj_srca srca u animaciji.
  • Pritisak dugmeta A povećava broj_srca.
  • Dodaj sleep() da animacija ne ide prebrzo.

Napomena: vežba kombinovanje promenljivih i animacije u funkcijama.


Zadatak 5: Tajmer / odbrojavanje

Kreiraj tajmer koji odbrojava od 10 do 0 i prikazuje rezultat na LED matrici, a kada dođe do 0, prikazuje „Kraj!“.

Uputstvo:

  • Kreiraj promenljivu tajmer = 10.
  • Kreiraj funkciju prikazi_tajmer() koja prikazuje trenutni broj.
  • Koristi while petlju da smanjuješ tajmer i dodaješ sleep(1000) između koraka.
  • Na kraju, prikaži tekst „Kraj!“ pomoću display.scroll().

Napomena: vežba promenljive, funkcije i petlje sa vremenom.