python { minicourse - programiranjeprogramiranje.yolasite.com/resources/python_tutorial.pdf · uvod...

23
Uvod u Python Python – minicourse Raˇ cunalne mreˇ ze i usluge Odjel za matematiku 2009

Upload: phamdan

Post on 15-Feb-2018

237 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

Uvod u Python

Python – minicourseRacunalne mreze i usluge

Odjel za matematiku 2009

Page 2: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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.

Page 3: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 4: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 5: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 6: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 7: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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.

Page 8: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 9: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 10: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 11: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 12: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 13: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 14: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 15: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 16: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 17: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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, " "

Page 18: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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, " "

Page 19: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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, " "

Page 20: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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

Page 21: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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)

Page 22: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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.

Page 23: Python { minicourse - programiranjeprogramiranje.yolasite.com/resources/Python_tutorial.pdf · Uvod u Python Jezi cne zna cajke Python je interpreterski, interaktivni, objektno orijentirani

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.