1.
U Terminalu za otvaranje, da se omogući otvaranje upisati:
chmod +x vjezba.py

Python ima samo tri tipa brojeva a to su:
int
float
complex

Tip int su cijeli brojevi, float se upotrebljava za decimalne brojeve, dok je complex za kompleksne brojeve.


int() – pretvara varijablu u tip int
float() – pretvara varijablu u tip float
str() – pretvara varijablu u tip string

2.
input() – za unos stringova
int(input()) – za unos cijelih brojeva
float(input()) – za unos decimalnih brojeva


Aritmetički operatori:
+ zbrajanje
- oduzimanje
* množenje
** potenciranje
/ dijeljenje (a/b)
// cjelobrojno dijeljenje (a//b)
% modularno dijeljenje (a%b)

3.
.............................................................................
Ispis rezultata, načini:
a=5
b=4
print "Ispis brojeva: " + str(a) + "+" + str(b) + "=" + str(a+b)

pretvaranje u string(str)

--------------------------------------------------
print "Zbroj brojeva %i i %i je %f: " %(a,b,a+b)
Vraća: Zbroj brojeva 5 i 4 je 9.000000:

i - integer
d - integer
f - float
s - string

-----------------------------------------------
print ("Zbroj brojeva {} i {} je {}." .format(a, b, a+b))
print ("Zbroj brojeva {1} i {0} je {2}." .format(a, b, a+b))

Vraća:
Zbroj brojeva 5 i 4 je 9.
Zbroj brojeva 4 i 5 je 9.

----------------------------------------------
a=5.987
b=4.45907
print ("Ispis: {0:10}" .format(a))
print ("Ispis: {0:10}" .format(b))
Vraća:
Ispis: 5.987
Ispis: 4.45907
-----------------------------------------------
natpis = "Pozdravljam SVE VAS"

print(natpis.lower())
print(natpis.upper())
print (natpis.capitalize())
print (natpis.swapcase())
print (natpis.title())

Vraća:
pozdravljam sve vas
POZDRAVLJAM SVE VAS
Pozdravljam sve vas
pOZDRAVLJAM sve vas
Pozdravljam Sve Vas

Pojašnjenje:
.lower() – pretvaranje u mala slova
.upper() – pretvaranje u velika slova
.capitalize() – pretvaranje prvog slova u veliko
.swapcase() – mala slova pretvara u velika, a velika u mala
.title() – prvo slovo svake riječi pretvara u veliko
-----------------------------------------------------------------
natpis = "Pozdravljam sve vas"

print "Natpis ima",len(natpis), "znakova"
print "Prvi znak je: ", natpis[0]
print "3. i 6. znak su: ",natpis[3] + natpis[6]

Vraća:
Natpis ima 19 znakova
Prvi znak je: P
3. i 6. znak su: dv
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
print natpis[11:14]
print natpis[14:]
print natpis[:5]

Vraća:
sv
e vas
Pozdr

Pojašnjenje:
[d:g] – ispisuju se znakovi od d do g
[d:] – ispisuje se sve od donje granice do kraja stringa
[:g] – ispisuje se sve od početka stringa do gornje granice
[d:g:k] – ispisuju se znakovi od d do g, ali samo određenim korakom

d – donja granica, g – gornja granica, k – korak
------------------------------------------------------------------------------
4.

If uvjet

Manje od <
Veće od >
Manje ili jednako <=
Veće ili jednako >=
Jednako ==
Različito !=

#!/usr/bin/env python
broj = float(input("Unesite broj!"))

print str(broj)

if broj > 100:
print ("Broj je veci od 100")
elif broj == 100:
print("Broj je 100")
else:
print("Broj je manji od 100")

Paziti na TAB. Bez TAB uvlačenja Python prikazuje pogrešku
--------------------------------------------------------

Logički operatori

Logički operator and je operator koji vraća vrijednost True (istinu) ako i samo ako su svi uvjeti istiniti (zadovoljeni).
U suprotnome će vraćena vrijednost biti False (laž).

Logički operator or je operator koji vraća vrijednost True (istinu) ako je barem jedan uvjet istinit (zadovoljen).
Ako nijedan uvjet nije istinit, vraćena vrijednost biti će False (laž).

Logički operator not je operator negacije, odnosno, za svaku vrijednost True (istina), on vraća False (laž) i obrnuto.

#!/usr/bin/env python
broj1 = int(input("Unesite broj 1-5"))
broj2 = int(input("Unesite broj 6-10"))



if (broj1 >=1 and broj1<=5) and (broj2 >= 6 and broj2 <=10):
print ("Oba broja su dobro upisana")
elif (broj1 >=1 and broj1<=5) or (broj2 >= 6 and broj2 <=10):
print("Samo jedan broj je dobro upisan")
else:
print("Ni jedan broj nije dobro upisan")


Isto to samo preko varijable Boolean


#!/usr/bin/env python
broj1 = int(input("Unesite broj 1-5"))
broj2 = int(input("Unesite broj 6-10"))

#-boolean varijabla za prvi i drugi broj
interval1 = broj1>=1 and broj1<=5
interval2 = broj2 >=6 and broj2<=10

if interval1 and interval2:
print ("Oba broja su dobro upisana")
elif interval1 or interval2:
print("Samo jedan broj je dobro upisan")
else:
print("Ni jedan broj nije dobro upisan")


--------------------------------------------------------------------------
5.
Petlje

For petlja

#!/usr/bin/env python
for i in range(1,6):
print(i)


While petlja

#!/usr/bin/env python
i = 1
while i< 6:
print(i)
i=i + 1

Obje petlje vraćaju:

1
2
3
4
5
----------------------------------------------------------------
Continue i break u petlji

#!/usr/bin/env python
suma=0
for i in range(0,5):
broj = int(input("Unesite cijeli broj"))
suma = suma + broj

if broj<0:
continue

if broj==0:
break
print "Suma pozitivnih brojeva je",suma

Vraća:
Unesite cijeli broj9
Unesite cijeli broj45
Unesite cijeli broj34
Unesite cijeli broj23
Unesite cijeli broj98
'Suma pozitivnih brojeva je', 209
-------------------------------------------------
#!/usr/bin/env python
suma=0
brojanje=0
i = int(input("Unesite cijeli broj"))

while i != 0:
suma = suma + i
brojanje = brojanje + 1
i = int(input("Unesite cijeli broj"))

sredina=suma/brojanje

print "Aritmeticka sredina je: ",sredina
-------------------------------------------------------------------
Tablica množenja, ugniježđena petlja

Kod sa jednom petljom i varijablom:

#!/usr/bin/env python

print("Tablica mnozenja do 100")
print("__________")

prvi = 0
for broj in range(1,11):
prvi = prvi + 1
print("{:5}".format(broj)), ("{:1}{:2}".format("",prvi*2)), ("{:1}{:2}".format("",prvi*3)), ("{:1}{:2}".format("",prvi*4)), ("{:1}{:2}".format("",prvi*5)), ("{:1}{:2}".format("",prvi*6)), ("{:1}{:2}".format("",prvi*7)), ("{:1}{:2}".format("",prvi*8)), ("{:1}{:2}".format("",prvi*9)), ("{:1}{:2}".format("",prvi*10))

Kod sa dvije petlje:

#!/usr/bin/env python

print("Tablica mnozenja do 100")
print("__________")

for red in range(1,11):
for stupac in range(1,11):
print("{:5}".format(red*stupac), end="")

-------------------------------------------------------------------------------------------------------------------------------
http://go-lang.cat-v.org/text-editors/geany/
http://www.youtube.com/watch?v=HLC2HfonL0k
http://www.ribbet.com/app/?edit_photo#/home/welcome
http://www.youtube.com/watch?v=0ACg7kpSqu0

unosimo brojeve i na kraju nam pokazuje koliki je postotak parnih brojeva,
petlja for

#!/usr/bin/env python

from decimal import *

broj=0
parni=0
for i in range(1,100):
a=int(input("unesite broj"))
broj = broj + 1
if a%2==0:
parni = parni + 1

if a==0:
broj = broj - 1
parni = parni - 1
break

c= Decimal(parni) / Decimal(broj)
print str(int(c*100)) + " %"
------------------------------------------------------------------------------------------
unosimo brojeve i na kraju nam pokazuje koliki je postotak parnih brojeva,
petlja while

#!/usr/bin/env python

from decimal import *

broj=0
parni=0
i=1
while i < 100:
a=int(input("unesite broj"))
broj = broj + 1
if a%2==0:
parni = parni + 1
i = i + 1

if a==0:
broj = broj - 1
parni = parni - 1
break

c= Decimal(parni) / Decimal(broj)
print str(int(c*100)) + " %"
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Ispis prvih 50 parnih brojeva:
while petlja

#!/usr/bin/env python
i = 1
parni=0
while parni<50:
i = i + 1
if i%2==0:
parni = parni + 1
print i
------------------------------------------------------------------------------
Ispis prvih 50 parnih brojeva:
for petlja
#!/usr/bin/env python
i = 1
parni=0
for i in range(1,200):
i = i + 1
if i%2==0:
parni = parni + 1
print i

if parni==50:
break
-------------------------------------------------------------------------------------------------------------------------------------------
6.
Liste

#!/usr/bin/env python

lista=["1","2","3"]

lista.append("2")'dodavanje
print lista
print lista.count("2")'koliko ima dvojki na listi
lista.insert(2,"8")'ubacivanje osmice na položaj 2
print lista
lista.remove("8")'brisanje osmice
print lista
print lista.index("2")'upisuje na kojem je mjestu dvojka
lista.reverse()'lista unazad
print lista
lista.sort()'sortira listu
print lista
lista.pop(3)'Ispisuje vrijednost trećeg indexa i briše sa liste
print lista
del lista[2]'Briše upis pod indexom 2
print lista
print len(lista)'Vraća dužinu liste

Lista za ispis imena funkcija append

#!/usr/bin/env python
i=0
unos=int(input("Koliko imena zelite unijeti?"))
lista=[]
for i in range(0,unos):
ime=input("Unesite ime:")
lista.append(ime)
print (lista)

broj = int(input("Unesite broj za ispis imena (1 -" + str(unos) + "): "))
print(lista[broj-1])


Vraća:
Koliko imena zelite unijeti?3
Unesite ime:"Antun"
Unesite ime:"Pero"
Unesite ime:"Ivo"
['Antun', 'Pero', 'Ivo']
Unesite broj za ispis imena (1 -3): 2
Pero

------------------------------------------------------

#for petlja za ispis liste
lista=("Antun",2,"Pero"I
for element in lista:
print(element)
vraća:
Antun
2
Pero

#ispis svih slova
lista="Antun"
for i in lista:
print(i)

Vraća:
A
n
t
u
n
-------------------------------------------------
Čitanje liste unazad:

#!/usr/bin/env python
lista=[]
for i in range (0,3):
a = int(input("Unesite broj: "))
lista.append(a)


for i in reversed(lista):
print str(i)
--------------------------------------------------
Tražimo najmanji i najveći broj na listi

#!/usr/bin/env python
lista=[]
for i in range (0,3):
a = int(input("Unesite broj: "))
lista.append(a)


lista.sort()
broj=0
for i in lista:
broj=broj + 1
if broj== 1:
najmanjibroj=i
if broj==len(lista):
najvecibroj=i

print ("Najmanji broj je: " + str(najmanjibroj))
print ("Najveci broj je: " + str(najvecibroj))
-----------------------------------------------------------------
Unosi proizvoljan broj brojeva u listu(parni broj), i vraća zbroj brojeva prvi i zadnji, drugi i predzadnji i.t.d

#!/usr/bin/env python
kada="da"
lista=[]
broj=0
while kada=="da":

a = int(input("Unesite broj: "))
if a!=0:
broj=broj+1
lista.append(a)

if a==0 and broj%2==0:
break
print lista
polovina=len(lista)/2
for i in range(1,polovina+1):
print("{} + {} = {} " .format(lista[i-1], lista[len(lista)-i], lista[i-1] + lista[len(lista)-i]))

------------------------------------------

Ispis računa:

#!/usr/bin/env python
import os
ponovo="da"
while ponovo=="da":
#Lista za unos nekih vrijednosti
racun=[]
suma=0
#Naslov pri unosu racuna
print ("Unos racuna")
print("------------")
#Broj unosa racuna
br_unosa=int(input("Broj unosa proizvoda: "))
print("_____________________")
#petlja za unos proizvoda
for i in range(0,br_unosa):
proizvod=(input("Unesite ime proizvoda: "))
cijena=int(input("Unesite cijenu proizvoda: "))
kolicina = int(input("Unesite kolicinu: "))
racun.append([proizvod, kolicina,cijena])
print("----------------------------")
suma = suma + (cijena * kolicina)


#Ispis zaglavlja racuna
print("Racun br. XXXXXX")
print("-----------------")
print("{:10} {:10} {:10} {:10}" .format(" Proizvod ", " Kolicina " , " Cijena " , " Suma "))
print("{:10} {:10} {:10} {:10}" .format("----------", "----------", "-----------", "-------"))
#Ispis tablice vrijednosti
for vrij in racun:
print("{:10} {:10} {:7.2f} kn {:7.2f} kn" .format(vrij[0], vrij[1], vrij[2], vrij[1]*vrij[2]))
print""

osnovica = suma/1.25
pdv = suma-osnovica
print("{:23}{:10}{:7.2f} kn" .format("", "UKUPNO: ", suma))
print("{:23}{:10}{:7.2f} kn" .format("", "Osnovica: ", osnovica))
print("{:23}{:10}{:7.2f} kn" .format("", "PDV: ", pdv))
print""
print("{:14}Dodjite nam opet!" .format(""))
print("------------------------------------")

#upit za ponovni unos racuna
ponovo=input("Zelite li napraviti novi racun? (da/ne): ")
if ponovo=="da":
os.system("clear")
print""
print("Kraj programa")


http://2daypython.readthedocs.org/en/latest/lessonplan.html
http://www.cryptoparty.in/overview_tools
#dobar link za python
-------------------------------------------------------------------------------------------
7.
N-torke

#!/usr/bin/env python
ntorka("Auto",)
ntorka1=(1,2,4)
ntorka2=(0,2,8)
ntorka3=(ntorka1+ntorka2)
print("Elementi 1. n-torke: ",ntorka1)
print("Elementi 2. n-torke: ", ntorka2)
print("Elementi 3. n-tornke: ", ntorka3)

for element in ntorka1:
print(element)

print len(ntorka1)
print min(ntorka1)
print max(ntorka1)

----------------------------------------------
Riječnici

#!/usr/bin/env python

rjecnik={}
#1001 je kljuc. Kljuc moze biti tipa int,float, string
#vrijednost kljuca moze biti bilo sto

rjecnik={1001:"Pero", 2900:"Ivo"}
#Rijecniku se pristupa samo preko kljuca(ne index)
print rjecnik[1001]

#dodavanje vrijednosti u rjecnik
rjecnik[100]="Antun"
print rjecnik[100]
#brisanje elementa iz rjecnika
del(rjecnik[100])

#provjera kljuca
kljuc=int(input("Upis kljuca: "))
#brisanje cijelog rjecnika
#rjecnik.clear()
if kljuc in rjecnik:
print("Kljuc je pronadjen!")
print("Ime: ",rjecnik[kljuc])
if not kljuc in rjecnik:
print("Nema kljuca")

for kljuc,vrijednost in rjecnik.items():
print (kljuc, "-", vrijednost)

-------------------------------------------------------
Riječnik unos novih studenata:

#!/usr/bin/env python

import os
#rjecnik sa studentima
studenti={"0000000001":["Pero", "Peric", "R", 2011, 3],
"0000000002":["Ivo", "Ivic", "I", 2012, 2],
"0000000003":["Janko", "Janic", "R", 2010, 4],
"0000000003":["Maja", "Majic", "R", 2010, 4]}
#Ispis zaglavlja tablice
print("{:13}{:9}{:9}".format(" OIB ","Ime ","Prezime "))
print("{:13}{:9}{:9}".format("----------","---------","-----------"))
#Ispis studenata u tablicu
for oib, student in studenti.items():
print("{:13}{:9}{:9}".format(oib, student[0],student[1]))
print""

ponovo="da"
while ponovo=="da":
#Unos kljuca od strane korisnika
kljuc=input("Unos kljuca. ")
#Boolean varijabla za status novog unosa
novi_unos = False

#Provjera je li kljuc u rjecniku
if kljuc in studenti:
print("OIB", kljuc)
print("Ime:",studenti[kljuc][0])
print("Prezime: ", studenti[kljuc][1])
if(studenti[kljuc][2]) == "R":
print("Status: Redovni")
else:
print("Status: Izvanredni")
print("Godina upisa: ", studenti[kljuc][3])
print("Godina studija: ", studenti[kljuc][4])
else:
print("Unos novog studenta")
print("----------")
print("OIB: ",kljuc)
ime=input("Ime: ")
prezime=input("Prezime: ")
status=input("Status: ")
studenti[kljuc]=[ime,prezime,status,2013,1]
novi_unos=True
print""
# u slucaju novog unosa ispisuje se tablica
if novi_unos==True:
print("{:13}{:9}{:9}".format(" OIB ", " Ime "," Prezime"))
print("{:13}{:9}{:9}".format("-----------", "--------","--------"))
for oib,student in studenti.items():
print("{:13}{:9}{:9}".format(oib, student[0],student[1]))
ponovo=input("Unos novog studenta? da/ne")
if ponovo=="da":
os.system("clear")

print""
print("Kraj programa")


------------------------------------------------------------------------
Skupovi (nema duplikata)

#!/usr/bin/env python

skup=set()
skup.add(100)
skup.add(300)
for element in skup:
print(element)

#brise sve elemente iz skupa
#skup.clear()

#brisanje jednog elementa iz skupa(moze i skup.remove())
print""
skup.discard(100)
for element in skup:
print(element)

#ispis liste preko skupa, izostavlja duplikate
print""
lista=[1,1,3,3,4,9,8]
skup=set(lista)
print ("Lista: ", lista)
print ("Skup: ", skup)
--------------------------------------------------------------------------------
8. Funkcije

Funkcija zbrajanje
#!/usr/bin/env python

def zbrajanje():
a=int(input("Unesite prvi broj: "))
b=int(input("Unesite drugi broj: "))
print"Zbroj brojeva", a, "i",b,"je",a+b

for i in range(1,3):
zbrajanje()
print""
-----------------------------------------------------------
Čuvanje varijable a_sredina( return)

#!/usr/bin/env python

def aritmeticka_sredina(lista):
suma =0
for element in lista:
suma=suma + element
rezultat = suma/len(lista)
return rezultat

lista=[5,9,7,2]
print aritmeticka_sredina(lista)
----------------------------------------------------------------
Rekurzivna funkcija(faktoriel)

#!/usr/bin/env python

def faktorijel(broj):
if broj<=1:
return 1
else:
return broj*faktorijel(broj-1)
unos=int(input("Unesite broj: "))

print"Faktorijel broja ", unos, " je ", faktorijel(unos)
------------------------------------------------------------------------
program za unos, brisanje i izmjenu unosa

#!/usr/bin/env python
import os
#pisanje rjecnika za unos gradjana
gradjani={"0000000001":["Jelena","Jelicic","Zagreb"],
"0000000002":["Iva","Ivic", "Osijek"],
"0000000003":["Jasminka","Jasminic","Vinkovci"]}
ponovo="da"

while ponovo=="da":

def provjera(oib):
if oib in gradjani:
return True
else:
return False

#Unos korisnika
def unos():
print("Unos novog korisnika")
print("---------------------")
oib=input("Unesite OIB: ")

if provjera(oib) == True:
print("Postoji korisnik s tim oib om.")
else:
ime=input("Ime: ")
prezime= input ("Prezime: ")
grad= input("Grad: ")
gradjani[oib] = [ime,prezime,grad]

#mogucnost brisanja
def brisanje():
print("Brisanje korisnika")
print("------------------")
oib= input("Unesite OIB: ")
if provjera(oib) == False:
Print("Ne postoji korisnik s tim OIB om.")
else:
del(gradjani[oib])
print("Korisnik je obrisan. ")

#mogucnost promjene
def promjena():
print("Promjena korisnickih podataka")
print("-----------------------------")
oib=input("Unesite OIB: ")

if provjera(oib) == False:
print("Ne postoji takak korisnik. ")
else:
print("Ime: ",gradjani[oib][0])
ime = input("Novo ime.")

ime=gradjani[oib][0]

print("Prezime: ",gradjani[oib][1])
prezime=input("Novo prezime.")
if prezime=="":
prezime=gradjani[oib][1]

print("Grad: ", gradjani[oib][2])
grad=input("Novi grad: ")
if grad=="":
grad=gradjani[oib][2]
gradjani[oib]=[ime,prezime,grad]

#Ispis
def ispis():
print("OIB\t\tIme\tPrezime\tGrad")
print("---\t\t----\t-------\t---")
for oib,podaci in gradjani.items():
print(oib+"\t"+podaci[0]+"\t"+podaci[1]+"\t"+podaci[2])

#Kreiranje izbornika
def izbornik():
while True:
print("Izbornik")
print("--------")
print("1) Unos novog korisnika")
print("2) Brisanje korisnika")
print("3) Promjena podataka o korisniku")
print("4) Ispis tablice")
print("0) Izlaz")
print""

odabir=int(input("Odabir opcije"))
print""
if odabir==1:
unos()
elif odabir==2:
brisanje()
elif odabir==3:
promjena()
elif odabir==4:
ispis()
elif odabir==0:
print("Kraj programa")
break
os.system("clear")
else:
print("Krivi unos")

print""
ponovo=input("Dalje u program da/ne")
if ponovo=="da":
os.system("clear")


izbornik()
------------------------------------------------------------------------------
Fibonacci funkcija rekurzivna:

#!/usr/bin/env python

def fibonacci(broj):

if broj==0 or broj==1:
return broj
else:
return fibonacci(broj-1) + fibonacci(broj-2)

print ("Fibonacci broja 10 je: " + str(fibonacci(10)))

#vraća 55

----------------------
Fibonacci funkcija rekurzivna, ispis brojeva:
#!/usr/bin/env python

pocetni = int(raw_input("Pocetni broj: "))
zavrsni = int(raw_input("Zavrsni broj: "))

def fib(n):
if n < 2:
return n
return fib(n-2) + fib(n-1)

print map(fib, range(pocetni, zavrsni))
----------------------------------------------------------------------------------
9.
Otvaranje datoteka i upisivanje u istu

#!/usr/bin/env python

lista1=[["Iva","Ivic","Split"],
["Marko","Markic","Osijek"],
["Janko","Jankic","Vinkovci"]]

print"Pocetna lista"
for redak in lista1:
print(redak)

#Otvaranje datotek za pisanje
datoteka=open("datoteka.txt", "w")

#Zapisivanje u datoteku, red po red
for element in lista1:
redak=";".join(element)
redak=redak+"\n"
datoteka.write(redak)
datoteka.close()

#Citanje datoteke u pythonu

lista2=[]
#Otvaranje datoteke za citanje
datoteka=open("datoteka.txt","r")

#Citanje redak po redak
for redak in datoteka:
element=redak.rstrip()
element=element.split(";")
lista2.append(element)

#zatvaranje datoteke
datoteka.close()

print""
print("Procitana lista")
for redak in lista2:
print(redak)


---------------------------------------------------------------------
Downloader python i upisivanje u datoteku
#!/usr/bin/env python

import urllib
from urllib.request import urlopen

#Unos URL-a
def unos():
url=input("Unesite URL: ")
return url

#Provjera URL a
def provjera(url):
print""
try:
objekt=urlopen(url)
except I0Error as e:
print("Url je neispravan")
else:
print("URL je ispravan")
return True

#Preuzimanje datoteke
def download(url):
print("----------------------")
odgovor=urlopen(url)
print("Preuzimanje zapoceto..")
print("...")
sadrzaj=odgovor.read()
odgovor.close()
print("Preuzimanje zavrseno")
print("--------------------")
return sadrzaj

#Tip i ime datoteke
def ime(url):
d=url.rfind(".")
ekstenzija=url[d:]
tip=(url[(d+1):]).upper()
print("Tip datoteke:",tip)
ime=input("Unesite ime datoteke:")
ime = ime + ekstenzija
return ime

#Spremanje datoteke
def spremi(ime,sadrzaj):
datoteka=open(ime,"wb")
datoteka.write(sadrzaj)
datoteka.close()
print("Datoteka je spremljena kao:",ime)

#Pozivanje funkcije i pridruzivanje argumenata

adresa=unos()
if provjera(adresa)== True:
sadrzaj=download(adresa)
naziv=ime(adresa)
spremi(naziv,sadrzaj)