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

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

Feb 15, 2018

Download

Documents

phamdan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.