python { minicourse - programiranjeprogramiranje.yolasite.com/resources/python_tutorial.pdf · uvod...
TRANSCRIPT
Uvod u Python
Python – minicourseRacunalne mreze i usluge
Odjel za matematiku 2009
Uvod u Python
Jezicne znacajke
Python je interpreterski, interaktivni, objektno orijentirani programski jezik.Tvorac: Guido von RossumPrimjena: MIT, NASA, IBM, Google, . . .Licenca: open-source
I Interpretacija medukoda
I Jezik visoke razine
I cista sintaksa
I napredne znacajke jezika
I prosirivost
I bogata biblioteka programa.
Uvod u Python
Izvodenje python programa
2 nacina rada:I Interaktivni rad – u konzolu se upisuju naredbe programskog jezika koje se odmah
interpretiraju (izvrsavaju).
$ pythonPython 2.5 (r25:51908, Oct 6 2006, 15:24:43)[GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu4)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> print "Hello, World!"
I Skriptni rad – Programi se spremaju u skripte a onda se kao Unix/Linux iliWindows skripte pozivaju iz sistemske linije.
python imeskripte.py
I Ugradeni kod – izvodenje Python koda u drugim programskim jezicima
Uvod u Python
Varijable i unos
U Pythonu nema ekplcitine deklaracije tipa varijable, interpreter na temeljuincijalizacije prepoznaje tip.Ispis na konzolu: print naredba
Example (”Hello, World!”)
>>> print "Hello, World!"
Izraz za unos podataka s konzole: input naredba.
Example (Unos)
Napisite program koji ce za uneseno ime napisati ”Dobrodosli, ime, u svijet Pythona”.
#ime.pyime=input("Unesite ime:") #’ime’print "Dobrodosli "+ime+" u svijet Pythona"
python ime.py
Uvod u Python
Varijable i unos
U Pythonu nema ekplcitine deklaracije tipa varijable, interpreter na temeljuincijalizacije prepoznaje tip.Ispis na konzolu: print naredba
Example (”Hello, World!”)
>>> print "Hello, World!"
Izraz za unos podataka s konzole: input naredba.
Example (Unos)
Napisite program koji ce za uneseno ime napisati ”Dobrodosli, ime, u svijet Pythona”.
#ime.pyime=input("Unesite ime:") #’ime’print "Dobrodosli "+ime+" u svijet Pythona"
python ime.py
Uvod u Python
Tipovi podataka
Osnovne tipove podataka Python predstavlja u objektima.
Kategorija Ime Opis
Prazno (None) NoneType ’null’ objekt
Brojevi IntType Cijeli brojLongType Dugi cijeli brojFloatType Realni broj s pom. zarezomComplexType Kompleksni broj
Nizovi StringType Niz znakova (string)UnicodeType Unicode (string)ListType Listina, popis ili listaTupleType n-teracXRangeType Vraceno iz xrange()BufferType Vraceno iz buffer()
Preslikavanje DictType Rjecnik
Klase, razredi ClassType Definicija klase
Instanca klase, objekt InstanceType Stvaranje instance klase
Datoteka FileType Datoteka - podaci na mediju
Moduli ModuleType Modul (skup objekata)
Example
2347 # Cjelobrojni literal
13.514 # Realni (Floating-point) literal
5.0J # Imaginarni literal
’hello’ # String literal, niz znakova
[ 63, ’faks’, 8.6 ] # Listina, lista ili popis
( 450, 320, ’600’ ) # n-terac
{ ’a’:72, ’b’:1.4 } # rjecnik
Uvod u Python
Napredniji tipovi podataka u Pythonu:
I Liste (lists) [’a’,1,’b’,16]
I N-terci (tuples) (1,10,3)
I Rjecnici (dictionaries) {’a’:1,’b’:2,’c’:3}
I Skupovi (sets)
U Pythonu je definiran poveci broj operacija za rad s tipovima podataka.
Uvod u Python
Malo igre s tipovima podataka...
>>> type("Zanimljivi Python svijet!") # string literal
<type ’str’>
>>> type(512) # numericki literal
<type ’int’>
>>> k=2.178 # varijabla k
>>> type(k)
<type ’float’>
>>> type ({ ’a’:72, ’b’:1.4 })
<type ’dict’>
>>> z=2+3j # varijabla z
>>> type(z)
<type ’complex’>
1, 23, 3493 #Decimalni cijeli brojevi
01, 027, 06645 #Oktetni cijeli brojevi
0x1, 0x17, 0xda5 #heksadecimalni cijeli brojevi
1L, 23L, 99999333493L #Dugacki decimalni cijeli brojevi
01L, 027L, 01351033136165L #Dugacki oktetni cijeli brojevi
0x1L, 0x17L, 0x17486CBC75L #Dugacki heksadec. cijeli brojevi
Dodatne funkcije iz modula:
>>>import math
>>> print math.pi, math.sin(2.3)
3.14159265359 0.745705212177
Uvod u Python
Operacije i operatori
Python podrzava vecinu operatora i operacija koji su podrzani u ostalim programskimjezicima:
1. aritmeticke operacije (+,−, ∗∗, /, . . .)
2. operatori pridruzivanja (=, + =, ∗ =, ∗∗ =, . . .)
3. operacije na pojedinim tipovima podataka (ugradene metode u objekte)
Uvod u Python
Operatori nad tipovima podataka:’izraz,...’ String pretvorba NA
key:izraz,... Stvaranje rjecnika NA
[izraz,...] Stvaranje liste NA
(izrazr,...) Stvaranje n-terca ili jednostavne zagrade NA
f(izraz,...) Poziv funkcije L
x[index1:index2] Kriska (slicing) L
x[index] Indeksiranje (indexing) L
x.attr Referenca atributa L
x**y Eksponent (x na y potenciju) D
x Bitwise NE (NOT) NA
+x, -x Unarni plus ili minus NA
x*y, x/y, x//y, x%y Mnozenje, dijeljenje, dijeljenje na cijeli broj, ostatak L
x+y, x-y Zbajanje, oduzimanje L
x¡¡y, x¿¿y Lijevi pomak, desni pomak L
x&y Bitwise I (AND) L
x ∧ y Bitwise eksluzivni ILI (XOR) L
x—y Bitwise ILI (OR) L
x < y, x <= y, x > y, x >= y, x <> y, x! = y, x == y Usporedbe NA
x is y, x is not y Provjera identiteta NA
x in y, x not in y Provjera clanstva NA
not x Bool-ov NE (NOT) NA
x and y Bool-ov I (AND) L
x or y Bool-ov ILI (OR) L
lambda arg,...: izraz Anonimna jednostavna funkcija NA
Uvod u Python
Primjeri
ExampleNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
import math
print "Racun za povrsinu trokuta "
a = input("a:") #pretpostavka: nejednakost trokuta
b = input("b:")
c=input("c:")
s=(a+b+c)/2
print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
print "Opseg trokuta je ",a+b+c
ExampleNapisite Python program koji ce za unesenu listu brojeva sortirati danu listu.
lista=[2,6,1,4,5,7]
lista.sort()
print lista
ExamplePython program s pozdravom.
ime=raw_input("Vase ime:")
titula=raw_input("titula:")
print "Dobrodosli u svijet Pythona, %s %s" % (titula,ime)
Uvod u Python
Primjeri
ExampleNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
import math
print "Racun za povrsinu trokuta "
a = input("a:") #pretpostavka: nejednakost trokuta
b = input("b:")
c=input("c:")
s=(a+b+c)/2
print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
print "Opseg trokuta je ",a+b+c
ExampleNapisite Python program koji ce za unesenu listu brojeva sortirati danu listu.
lista=[2,6,1,4,5,7]
lista.sort()
print lista
ExamplePython program s pozdravom.
ime=raw_input("Vase ime:")
titula=raw_input("titula:")
print "Dobrodosli u svijet Pythona, %s %s" % (titula,ime)
Uvod u Python
Primjeri
ExampleNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
import math
print "Racun za povrsinu trokuta "
a = input("a:") #pretpostavka: nejednakost trokuta
b = input("b:")
c=input("c:")
s=(a+b+c)/2
print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
print "Opseg trokuta je ",a+b+c
ExampleNapisite Python program koji ce za unesenu listu brojeva sortirati danu listu.
lista=[2,6,1,4,5,7]
lista.sort()
print lista
ExamplePython program s pozdravom.
ime=raw_input("Vase ime:")
titula=raw_input("titula:")
print "Dobrodosli u svijet Pythona, %s %s" % (titula,ime)
Uvod u Python
Primjeri
ExampleNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
import math
print "Racun za povrsinu trokuta "
a = input("a:") #pretpostavka: nejednakost trokuta
b = input("b:")
c=input("c:")
s=(a+b+c)/2
print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
print "Opseg trokuta je ",a+b+c
ExampleNapisite Python program koji ce za unesenu listu brojeva sortirati danu listu.
lista=[2,6,1,4,5,7]
lista.sort()
print lista
ExamplePython program s pozdravom.
ime=raw_input("Vase ime:")
titula=raw_input("titula:")
print "Dobrodosli u svijet Pythona, %s %s" % (titula,ime)
Uvod u Python
Primjeri
ExampleNapisite Python program koji ce za unesene stranice trokuta a, b, c izracunati povrsinutog trokuta.
import math
print "Racun za povrsinu trokuta "
a = input("a:") #pretpostavka: nejednakost trokuta
b = input("b:")
c=input("c:")
s=(a+b+c)/2
print "povrsina trokuta je ",math.sqrt(s*(s-a)*(s-b)*(s-c))
print "Opseg trokuta je ",a+b+c
ExampleNapisite Python program koji ce za unesenu listu brojeva sortirati danu listu.
lista=[2,6,1,4,5,7]
lista.sort()
print lista
ExamplePython program s pozdravom.
ime=raw_input("Vase ime:")
titula=raw_input("titula:")
print "Dobrodosli u svijet Pythona, %s %s" % (titula,ime)
Uvod u Python
Kontrolne struktureKontrolne strukture koje podrzava Python:
if . . . then . . . else
if uvjet(i):
naredba(e)
elif uvjet(i):
naredba(e)
elif uvjet(i):
naredba(e)
...
else uvjet(i):
naredba(e)
Ponavljaj uz uvjet . . .
While . . .
while izraz:
naredba(e)
Iterativno izvodenje blok naredbi upravljen od iteracijskog izraza:
For . . .
for cilj in nizu:
naredba(e)
Uvod u Python
Primjeri
Example (Aritmeticka sredina)Za dani niz podataka treba odrediti njegovu aritmeticku sredinu.
print "Unesite brojeve za racunanje"
print "Za izlaz upisite 0"
suma=0.0
broj=input("Upisite broj")
n=1 #brojimo elemente
while (broj!=0):
broj=input("Upisite broj:")
n+=1
suma+=broj
print suma/n
Example (Fibonnaci)Za dani n ispisite n Fibonaccijevih brojeva.
n=input("Koliko zelite fibonaccijevih brojeva:")
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
print "Fibonaccijevi brojevi: "
for broj in result:
print broj, " "
Uvod u Python
Primjeri
Example (Aritmeticka sredina)Za dani niz podataka treba odrediti njegovu aritmeticku sredinu.
print "Unesite brojeve za racunanje"
print "Za izlaz upisite 0"
suma=0.0
broj=input("Upisite broj")
n=1 #brojimo elemente
while (broj!=0):
broj=input("Upisite broj:")
n+=1
suma+=broj
print suma/n
Example (Fibonnaci)Za dani n ispisite n Fibonaccijevih brojeva.
n=input("Koliko zelite fibonaccijevih brojeva:")
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
print "Fibonaccijevi brojevi: "
for broj in result:
print broj, " "
Uvod u Python
Primjeri
Example (Aritmeticka sredina)Za dani niz podataka treba odrediti njegovu aritmeticku sredinu.
print "Unesite brojeve za racunanje"
print "Za izlaz upisite 0"
suma=0.0
broj=input("Upisite broj")
n=1 #brojimo elemente
while (broj!=0):
broj=input("Upisite broj:")
n+=1
suma+=broj
print suma/n
Example (Fibonnaci)Za dani n ispisite n Fibonaccijevih brojeva.
n=input("Koliko zelite fibonaccijevih brojeva:")
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
print "Fibonaccijevi brojevi: "
for broj in result:
print broj, " "
Uvod u Python
Funkcije
Vecina naredbi tipicnog Python programa organizirana je preko funkcija. Funkcija jeskupina naredbi koje se izvrsavaju po pozivu.
def function-name(parameters):
statement(s)
ExampleDefinirajte funkciju koja vraca aposolutnu vrijednost broja.
def abs(x):
if x<0:
return -x
else:
return x
Uvod u Python
Funkcijski argumenti
Python podrzava proslijedivanje proizvoljnog broja parametara funkcijama ...
Example (Artimeticka vrijednost 2)Funkcija aritmeticke sredine za proizvoljne brojeve.
def Mean(*brojevi):
n=0
suma=0.0
for x in brojevi:
suma+=x
n+=1
return suma/n
print Mean(2,2,1,6,9,4,7,1,3)
Uvod u Python
Primjeri
ExampleDefinirajte funkciju koja ce provjeravati da li je broj prost i dodatnu funckciju koja ceza prosijedene brojeve racunati samo onu sumu prostih brojeva.
import math
def Prime(broj):
for p in range(2,broj):
if (broj % p == 0):
return False
return True
print Prime(100)
import math
def prime_sum(*brojevi):
suma=0.0
for x in brojevi:
if Prime(x):
suma=suma+x
return suma
Example
Definirajte funkciju koja ce racunati n-ti Fibonaccijev broj.
Uvod u Python
Primjeri
ExampleDefinirajte funkciju koja ce provjeravati da li je broj prost i dodatnu funckciju koja ceza prosijedene brojeve racunati samo onu sumu prostih brojeva.
import math
def Prime(broj):
for p in range(2,broj):
if (broj % p == 0):
return False
return True
print Prime(100)
import math
def prime_sum(*brojevi):
suma=0.0
for x in brojevi:
if Prime(x):
suma=suma+x
return suma
Example
Definirajte funkciju koja ce racunati n-ti Fibonaccijev broj.