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

Click here to load reader

Post on 15-Feb-2018

219 views

Category:

Documents

1 download

Embed Size (px)

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:") #imeprint "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:") #imeprint "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(512) # numericki literal

    >>> k=2.178 # varijabla k

    >>> type(k)

    >>> type ({ a:72, b:1.4 })

    >>> z=2+3j # varijabla z

    >>> type(z)

    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

    xy, xy Lijevi pomak, desni pomak L

    x&y Bitwise I (AND) L

    x y Bitwise eksluzivni ILI (XOR) Lxy Bitwise ILI (OR) L

    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

  • 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.

    Uvod u Python