(ostvarivanje obrazovnih ishoda u 7. i 8.raz. OŠ)
Osnovni:
Složeni:
Napiši program koji unosi zaključene ocjene učenika i sprema ih u listu te ispisuje prosjek ocjena, najveću i najmanju ocjenu
Napiši program koji unosi zaključene ocjene učenika i sprema ih u listu te ispisuje prosjek ocjena, najveću i najmanju ocjenu
lista = []
while len(lista) < 5:
ocjena = int(input('Upisi ocjenu: '))
if ocjena < 0 or ocjena > 5:
print('Neispravan unos.')
print(' Upisi ocjenu od 1-5')
continue
else:
lista.append(ocjena)
print('Ocjene:', lista)
print('Najveca ocjena:', max(lista))
print('Najmanja ocjena:', min(lista))
print('Prosjek ocjena:', "{0:.2f}".format(sum(lista)/float(len(lista))))print("Ivo ima {0:.2f} kn i {1} psa.".format(5,3)) #ručno definiranje formata
x = 3
y = 2
print("Ana ima {} brata i {} sestre".format(x,y)) #automatsko formatiranjePrilikom kupovine preko interneta, kada unosimo npr. broj kreditne kartice ili broj telefona, dio broja se "maskira" tako da se zamijeni znakom #, a prikazu
se samo zadnje četiri znamenke.
Napiši funkciju koja prima niz znakova te vraća sakrivene znakove na takav način da će sve znakove prekriti znakom #, osim zadnja četiri!
Npr.
s=12567832423 ---> #######2423
s=567abcd98at ---> #######98at
def sakrij(s):
return "#"*(len(s)-4) + s[-4:]DNA je nukleinska kiselina koja sadrzi genetske upute za specifični biološki razvoj staničnih oblika života. Između dva DNA lanca postoje ove kombinacije: A+T, T+A, C+G, G+C. Kažemo da su A i T te C i G komplementarni.
Napiši funkciju koja prima DNA lanac u obliku niza znakova i vraća novi niz znakova koji sadrži komplementarne parove lanca.
npr. ATTGC---->TAACG
def dna_lanac(dna):
s = ''
for i in dna:
if i=='T':
s += 'A'
elif i=='A':
s += 'T'
elif i=='G':
s += 'C'
elif i=='C':
s += 'G'
return s
def dna_lanac(dna):
parovi = { "A":"T",
"T":"A",
"C":"G",
"G":"C"
}
return "".join([parovi[x] for x in dna])Rječnik: sintaksa r = { ključ: vrijednost}
rjecnik = {"Pero": 2004, "Iva": 2003}
for i in rjecnik:
print(i,rjecnik[i])
List comprehension: sintaksa rez = [naredba, ponavljanje, uvjet]
#obicna for petlja
for i in range(10):
if i%2==0:
print(i+2)
#list comprehension
l = [i+2 for i in range(10) if i%2==0]
print(l)
Napiši funkciju koja prima niz znakova i vraća najkraću riječ iz njega.
Napiši funkciju koja prima niz znakova i vraća najkraću riječ iz njega.
def najkraca(s):
l = s.split()
return min(l, key=len)Napiši funkciju koja prima niz znakova te vraća ukupan broj samoglasnika u tom nizu.
Napiši funkciju koja prima niz znakova te vraća ukupan broj samoglasnika u tom nizu.
def samoglasnici(s):
bs = 0
for i in s:
if i in 'aeiou':
bs += 1
return bs
Ideje:
#ucitaj modul tkinter i random
from tkinter import *
from random import randint
#prikazi graficki prozor
prozor = Tk()
prozor.title("Ljubavni kalkulator")
prozor.config(width=300, height=300)
#prikazi naslov Ljubavni kalkulator
naslov = Label(prozor,text = "Ljubavni kalkulator",fg = "red",font = ("Comic Sans MS", 16))
naslov.place(x = 60,y = 20)
#prikazi tekst Zensko ime/Musko ime
z = Label(prozor,text = "Žensko ime: ")
z.place(x = 10,y = 90)
m = Label(prozor,text = "Muško ime: ")
m.place(x = 160,y = 90)
#prikazi polja za unos teksta
z_unos = Entry(prozor,width = 20)
z_unos.place(x = 10, y = 120)
m_unos = Entry(prozor, width = 20)
m_unos.place(x = 160, y = 120)
#funkcija za generiranje nasumicnog broja
def izracunaj():
n = randint(1,100)
return n
#funkcija koja provjerava je li u textbox upisano ime i ispisuje nasumican broj
#nakon klika na gumb Izracunaj
def provjeri_prikazi():
if len(z_unos.get()) == 0 or len(m_unos.get()) ==0 :
rez = Label(prozor,text = "Upiši ime! ",fg="red",font = ("Comic Sans MS", 26))
rez.place(x = 70,y = 210)
else:
rez = Label(prozor,text = " "+str(izracunaj())+"% ",font = ("Comic Sans MS", 34))
rez.place(x = 70,y = 210)
#prikazi gumb Izracunaj
gumb = Button(prozor, text = "Izračunaj", command = lambda:[provjeri_prikazi(),izracunaj()])
gumb.place(x = 120,y = 160)
prozor.mainloop()
#napišite program koji simulira loto 6/45 i izvlaci 7 brojeva
#program takoðer priva vaših 7 brojeva kao listu te ispisuje koliko brojeva ste pogodili
import random
izvuceni = []
def loto_brojevi():
for i in range(0,6):
br = random.randint(1,45)
while br in izvuceni:
br = random.randint(1,45)
izvuceni.append(br)
izvuceni.sort()
print (izvuceni)
korisnik = []
def korisnik_brojevi():
for i in range(0,6):
br = int(input("Upišite broj od 1-45"))
while br<1 or br>45:
br = int(input('Pokušajte ponovno'))
korisnik.append(br)
korisnik.sort()
print (korisnik)
loto_brojevi()
korisnik_brojevi()
brojac = 0
pogodak = []
for i in korisnik:
if i in izvuceni:
brojac+=1
pogodak.append(i)
print ('Broj pogodataka:', brojac)
Koristeći modul turtle izradi simulaciju nasumične šetnje dvije kornjače.
Text
import turtle
import random
prozor = turtle.Screen()
korni1 = turtle.Turtle()
korni2 = turtle.Turtle()
korni1.color("Red")
korni1.pencolor("red")
korni2.color("Green")
korni2.pencolor("green")
brojac = 0
while brojac <= 1000:
korni1.setheading(random.randint(0,360))# odredi smjer kretanja kornjace
korni1.forward(random.randint(-50,50)) # odredi udaljenost kretanja prema naprijed
korni2.setheading(random.randint(0,360))
korni2.forward(random.randint(-15,15))
brojac += 1
prozor.mainloop() brojevi = [5, 8, 9, 2, 1, 4]
for i in range(len(brojevi)-1):
for j in range((len(brojevi)-1)-i): # provjeravamo svaki element niza
if brojevi[j] > brojevi[j+1]:
brojevi[j], brojevi[j+1] = brojevi[j+1], brojevi[j] # napravi zamjenu
print(brojevi)
brojevi = [5, 8, 4, 12, 9, 1]
for i in range(len(brojevi)-1,0,-1):
najveci = 0
for j in range(1, i+1):
# usporedi trenutnu najvecu vrijednost i sljedeci element niza
if brojevi[j] > brojevi[najveci]:
najveci = j
#zamjena
brojevi[i], brojevi[najveci] = brojevi[najveci], brojevi[i]
print(brojevi)
brojevi = [5, 6, 2, 1, 8, 6]
print(sorted(brojevi)) # Izlaz: [1, 2, 5, 6, 6, 8]
print(sorted(brojevi, reverse = True)) # Izlaz: [8, 6, 6, 5, 2, 1]
voce = ['mango', 'kivi', 'lubenica', 'banana', 'jagoda']
print(sorted(voce)) # Izlaz: ['ananas', 'banana', 'jabuka', 'jagoda', 'kruska']
print(sorted(voce, key = len)) # Izlaz: ['jabuka', 'kruska', 'ananas', 'banana', 'jagoda']
x = "python"
print(sorted(x)) # Izlaz: ['h', 'n', 'o', 'p', 't', 'y']
brojevi = [4, 5, 6, 2, 1]
brojevi.sort()
print(brojevi) # Izlaz: [1, 2, 4, 5, 6]
Napiši funkciju koja prima neki cijeli broj te sortira njegove znamenke od najmanje do najveće
Napiši funkciju koja prima neki cijeli broj te sortira njegove znamenke od najmanje do najveće
def znamenke(broj):
sortiraj="".join(sorted(str(broj), reverse=True))
return int(sortiraj)Napiši program koji sortira dvije učitane liste prezimena i godine:
l = ['anic','peric','katic']
l2 = [2009, 2005,2001]
# sortiraj po prezimenu
a = sorted(zip(l, l2))
for i,j in a:
print (i,j)
print('-------')
# sortiraj po godini rodjenja
b = sorted(zip(l, l2), key=lambda x: x[1])
for i,j in b:
print (i,j)#funkcija zbroj
def zbroj(a,b):
return a + b
#lambda funkcija
zbroj = lambda a,b : a + b
Text
prezimena = []
bodovi = []
n = int(input('Broj ucenika'))
br_bod = int(input('Broj bodova u testu'))
for i in range(n):
prezime = input('Upisi prezime ucenika:')
prezimena.append(prezime)
bod = int(input('Broj bodova:'))
bodovi.append(bod)
prezimena, bodovi = zip(*sorted(zip(prezimena, bodovi)))
print('Ispis ucenika, broj bodova i postotak:')
print('------------------------------------------')
for i in range(n):
print(prezimena[i], bodovi[i],(int(bodovi[i])/br_bod)*100,'%')
Primjeri i ideje:
Umnožak prvih n brojeva
Legenda o šahu
Tornjevi Hanoija
Kochova pahuljica
Pitagorino stablo
Kralj je kraljev sin
Primjeri za učenje:
crtanje piramide, spirale, stabla
def umnozak(n):
if n == 1:
return 1
else:
rez = n * umnozak(n-1)
print("Trenutni rezultat za ", n, " * faktorijel(" ,n-1, "): ",rez)
return rez
print(umnozak(5))
Napiši rekurzivnu f-ju koja će računati potenciju za zadani prirodni broj n.
Napiši rekurzivnu f-ju koja će računati potenciju za zadani prirodni broj n.
def potencija(n):
if n == 1:
return 2
else:
return potencija(n-1)*2
Igra: Koordinatni sustav (python, pygame)
Igra: Pogodi zastavu (python, pygame)
Istraživanje na zadanu temu
Obrada podataka (python, pandas, numpy, matplotlib)
Prikaz rezultata i opis projekta (jupyter notebook)