import numpy as np # Operator dodele vrednost u python-u je iskljucivo "=" # Niz numpy brojeva (1, 2, 3): promenljiva_1 = np.array([1, 2, 3]) # Osnovna lista brojeva promenljiva_2 = [1, 2, 3] # Provera jednakosti: "==" print(promenljiva_1 == promenljiva_2) # Tipovi promenljivih a = 2 print('U ovom trenutku promenljiva je ceo broj:', a, '. Tip:', type(a)) a = 2.5 print('U ovom trenutku promenljiva je realan broj:', a, '. Tip:', type(a)) a = 'string' print('U ovom trenutku je postala string vrednost', a, '. Tip:', type(a)) # kroz tuple ne postoji iteracija a = (1, 2, 3) print('U ovom trenutku je postala', a, '. Tip:', type(a)) # lista: a = [1, 2, 3] print('U ovom trenutku je postala', a, '. Tip:', type(a)) # set: a = {1, 2, 3} print('U ovom trenutku je postala', a, '. Tip:', type(a)) # set ne moze da sadrzi duplikate a = {1, 2, 3, 2, 3, 4} print('U ovom trenutku je postala', a, '. Tip:', type(a)) # numpy array a = np.array([1, 2, 3, 3]) print('U ovom trenutku je postala', a, '. Tip:', type(a)) # NAPOMENA: u python-u brojimo od nule, a ne od jedinice kao u R-u. # indeksiranje: lista = [1, 2, 3] print('Prvi element liste je:', lista[0]) niz_nampi = np.array([1, 2, 3]) print('Prvi element numpy liste je:', niz_nampi[0]) # if-else naredbe: naredbe se pisu bez zagrada i na kraju reda dvotacka uslov = 3 > 0 if uslov: print('Tri je vece od nule!') print('i ovaj drugi ispis') else: print('Nije vece') # Definicija for petlji: for i in range(len(niz_nampi)): # range(3) = brojevi 0, 1, 2, odnosno brojevi od 0 DO 3. print('Na ', i, '-tom mestu je broj: ', niz_nampi[i]) # Aritmeticke operacije a = -7 b = 2 print('Zbir dva broja je', a + b) print('Razlika dva broja je', a - b) print('Proizvod dva broja je', a * b) print('Kolicnik dva broja je', a / b) print('Celobrojni kolicnik dva broja je', a // b) print('Kvadrat broja je', a ** 2) # Operatori provere print(a != b) print(True or False) print(True and False) print(a <= b) # definicija funkcija def zbir_tri_broja(prvi_broj, drugi_broj, treci_broj, ispisati_rezultat=False): rezultat = prvi_broj + drugi_broj + treci_broj if ispisati_rezultat: print('Rezultat je:', rezultat) return rezultat zbir_tri_broja(prvi_broj=2, drugi_broj=5, treci_broj=3, ispisati_rezultat=True) def zbir_brojeva_numpy(lista, ispisati_rezultat=False): rezultat = np.sum(lista) if ispisati_rezultat: print('Rezultat je:', rezultat) return rezultat zbir_brojeva_numpy(lista=np.array([1, 2, 3, 4, 5]), ispisati_rezultat=True) # (1) Iz date liste sa mogucim duplikatima u jednom prolazu # kroz listu skloniti duplikate. # Primer: [1, 2, 3, 2] => [1, 2, 3] def skloni_duplikate(lista): rezultat = set(lista) return list(rezultat) lista = ['a', 'a', 1, 1, 2, 3, 'b'] print('Pocetna lista je:', lista, 'Izlazna lista je', skloni_duplikate(lista=lista)) def skloni_duplikate_2(lista): skup = set() for element in lista: skup.add(element) return list(skup) lista = ['a', 'a', 1, 1, 2, 3, 'b'] print('Pocetna lista je:', lista, 'Izlazna lista je', skloni_duplikate_2(lista=lista)) # Dodavanje vrednosti u liste: pomocu list.append() lista = [1, 2, 3] lista.append(4) print(lista) # sad sadrzi broj 4 # (2) Napisati funkciju koja sortira numericke lista opadajuci. def sortiraj_opadajuce(lista): lista = -1 * lista return (-1) * np.sort(lista) # funkcija nece da radi sa obicnom listom jer nema mnozenja skalarom # mora numpy.array da bude za mnozenje skalarom lista = np.array([-1, -2, 5, 8, 10, 19, -2]) print('Pocetna lista je', lista, 'sortirana opadajuce:', sortiraj_opadajuce(lista=lista)) # visedimenzioni nizovi [[], []] lista = np.array([[1, 2], [3, 4], [5, [6, 7], [9, [10, [8]]]]]) print(lista[2][2][1][1][0]) ## probati for petlje kroz tuple, listu, np.array, set: # for petlja kroz set skup = {1, 2, 3, 4, 10} for element in skup: print(element) # for petlja kroz tuple tapl = (1, 2, 3, 4, 10) for element in tapl: print(element) # for petlja kroz np.array niz = np.array([1, 2, 3, 4, 10]) for element in niz: print(element)