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.
- Napravi funkciju koja prima listu brojeva i prikazuje samo parne brojeve.
- Napravi listu sa 4 slike (
Image) i prikaži ih u animaciji. - Napiši funkciju koja vraća najveći broj u listi i koristi je za animaciju.
- Napravite listu sa 5 brojeva i prikazuj ih na LED matrici dok se pritisne dugme A.
- 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
forprolazi 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_pritisakakoja č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 koristiforpetlju da prikaže svaki broj sa pauzom. - Koristi
while Trueda 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()iprikazi_prepreke(). - Koristi
button_aibutton_bza pomeranje igrača levo/desno. - Koristi
while Trueisleep()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_srcai inicijalizuj na 1. - Kreiraj funkciju
prikazi_srca()koja koristiforpetlju da prikažebroj_srcasrca 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
whilepetlju da smanjuještajmeri 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.