27
PYTHON Zlatko Markovinović, prof. mentor Gimnazija „Matija Mesić”, Slavonski Brod

Python by zlatko markovinovic

Embed Size (px)

Citation preview

Page 1: Python by zlatko markovinovic

PYTHON

Zlatko Markovinović, prof. mentor

Gimnazija „Matija Mesić”, Slavonski Brod

Page 2: Python by zlatko markovinovic

Što, zašto i kako?

Detektirati probleme nastave programiranja

Ustanoviti rješenje koje zadovoljava

Pripremiti nastavnike

Prilagoditi nastavne planove i programe

Page 3: Python by zlatko markovinovic

Programski jezici

Page 4: Python by zlatko markovinovic

Što djeca uče u školi?

OŠ - Logo, Basic/Pascal

SŠ - BASIC, Pascal, C, (C++, C#, Java)

Uspjeh – upoznati sintaksu svih jezika

Algoritamski pristup-nema vremena

Page 5: Python by zlatko markovinovic

Može li samo jedan jezik?

Besplatan

Jednostavna sintaksa

Lagan za naučiti

Jezik visoke razine (moćan, objektno orjentiran)

Dobro dokumentiran

Bogata biblioteka programa

Page 6: Python by zlatko markovinovic

Python

je softver otvorenog koda (open source)

je jednostavniji od Q-basica

je izuzetno moćan (kalkulator, web, igrice...)

je objektno-orijentirani jezik

je 7. jezik na ljestvici najpopularnijih (trav. 2010.)

je idealan za učenje programiranja

Page 7: Python by zlatko markovinovic

Python

nastao je 1990.

tvorac – Nizozemac Guido van Rossum

interpreter (može i exe pomoću py2exe)

koriste ga NASA, IBM, Google, Yahoo,...

podučavaju ga na MIT-u i na našim fakultetima

objektno-orijetnirani jezik

Page 8: Python by zlatko markovinovic

Osobine Pythona

nema točka-zarez na kraju naredbe

nema deklaraciju varijabli

sve je objekt

nema oznaku početka i kraja bloka naredbi

blok se definira uvlakama (C-{}, Pascal- Begin

End)

učenik zato mora pisati pregledan strukturirani kod

Page 9: Python by zlatko markovinovic

Usporedba Python-Pascal

Python a=input('Unesi duljinu stranice kvadrata:')

print 'Kvadrat stranice ',a,' ima površinu ',a*a

Pascal var a:integer;

begin

writeln('Unesi duljinu stranice kvadrata:');

readln(a);

writeln('Kvadrat stranice ',a,' ima površinu ',a*a);

readln

end

Rezultat

>>>

Unesi duljinu stranice kvadrata:5

Kvadrat stranice 5 ima površinu 25

Page 10: Python by zlatko markovinovic

Što sve može?

izrada grafičkog sučelja (Tkinter modul)

from Tkinter import *

root = Tk()

root.title ("Pozdrav")

Label (root, text = 'ovo je labela',font = 'times 16 bold').pack()

Button(root, text = 'ovdje klikni',font = 'times 16 bold').pack()

root.mainloop()

Page 11: Python by zlatko markovinovic

Što sve može?

kornjačina grafika (Turtle modul)

from turtle import*

reset()

for i in range(4):

fd(40)

lt(90)

clear()

hideturtle()

for i in range(110):

lt(55)

fd(60)

for i in range(15):

rt(65)

fd(23)

Page 12: Python by zlatko markovinovic

Zašto Python?

jezik za početnike

jezik kojim djeca zavole programiranje

jezik koji darovitima otvara mogućnosti

jezik koji ima smisla učiti

Page 13: Python by zlatko markovinovic

Python instalacija

http://www.python.org/

Python 2.6.4 (14,5 MB)

Page 14: Python by zlatko markovinovic

Python GUI

Interpreter

Enter za izvršavanje programske linije

Page 15: Python by zlatko markovinovic

Pisanje i pokretanje skripte

za pisanje skripte "File"->"New window”

pokretanje skripte “Run"->"Run Module F5"

Page 16: Python by zlatko markovinovic

Tipovi podatka

Brojevi

•121 # cjelobrojni – int

•23.513 # realni – float

•4+3j #imaginarni - complex

Stringovi

•'Ahoj' #niz znakova – str

Tip dobijemo >>>type(25.513)

<type 'float'>

Page 17: Python by zlatko markovinovic

Implementirani tipovi podataka

[ 'pauza', '12', 17.3 ] # lista ili popis - list

promjenljiv poredani niz članova

članovi su objekti bilo kojeg tipa

(137, 66, '120' ) # n-terac - tuple

nepromjenljivi niz članova

članovi su objekti bilo kojeg tipa

{’i’:17, ’j’:2.9} # rječnik - dictionary

član u rječniku je par kjuč/vrijednost

ključevi moraju biti jedinstveni

Page 18: Python by zlatko markovinovic

Naredbe print i input

Print >>> print 'Ljeto odlazi'

Ljeto odlazi

>>> a=4

>>> b=8

>>> print a,'+',b,'=',a+b

4 + 8 = 12

>>>

Input >>> ocjena=input('Unesi ocjenu:')

Unesi ocjenu:5

>>> print 'Uspjeh ti je ',ocjena

Uspjeh ti je 5

>>> poruka=raw_input('Unesi poruku:')

Unesi poruku:Dobar dan

>>> print poruka

Dobar dan

Page 19: Python by zlatko markovinovic

Python kao kalkulator

sadržaj math modula >>> help()

help> math #pregled sadržaja math modula

help> quit #izlaz iz helpa

>>> from math import *

>>> print factorial(5)

120

>>> 15/5*3

9

>>> 15/(5*3)

1

>>> 5/3 # Cjelobrojno dijeljenje

1

>>> 5./3 # Dodamo točku ako želimo realan rezultat

1.6666666666666667

Page 20: Python by zlatko markovinovic

Naredba grananja-if..elif

if uvjet1:

blok1 #naredba ili više njih

elif uvjet2:

blok2

...

else uvjetn:

blokn

# Za broj ispiši ako je negativan inače utvrdi parnost.

x=input('unesi broj')

if x < 0: print "x je negativan"

elif x % 2: print "x je pozitivan i neparan"

else: print "x je paran i nije ne-negativan"

Page 21: Python by zlatko markovinovic

Naredba ponavljanja - for

for cilj in nizu:

blok #naredba ili više njih

# Ispiši slova riječi "Ivo"

>>> for znak in "Ivo":

print znak

I

v

o

# Ispiši koga voliš.

>>> for ime in ['Ana','Ema','Viktorija']:

print ime, ' volim te!'

Ana volim te!

Ema volim te!

Viktorija volim te!

Page 22: Python by zlatko markovinovic

Funkcija range

range(x,y,step) - vraća niz cijelih brojeva od x

(uključeno) do y (isključeno) s korakom step

# Zbrojiti prvih 10 parnih brojeva.

s=0

for x in range(0,11,2):

s+=x # s=s+x

print s

# Ispiši srednju vrijednost za n unešenih brojeva.

n=input ('Koliko brojeva unosite?')

suma=0. # realna suma

for i in range(n): # od 0 do n-1 ima n brojeva

x =input("Unesite broj=")

suma=suma+x

print " Srednja vrijednost =",suma/n

Page 23: Python by zlatko markovinovic

Naredba ponavljanja - while

while uvjet:

blok #naredba ili više njih

# Zbrojiti prvih 10 parnih brojeva.

s=0;x=0

while x<11:

if x%2==0: # % ostatak pri cjelobrojnom djeljenju

s+=x # s=s+x

x+=1

print s

Page 24: Python by zlatko markovinovic

Naredbe break

dozvoljena samo unutar petlje

izvršavanjem break naredbe petlja završava

# Izlaz iz beskonačnog ponavljanja

while True:

x=input('Unesi 1 za kraj')

if x==1:

break

Page 25: Python by zlatko markovinovic

Kornjačina grafika

Python kao Logo

Naredbe se nalaze u modulu Turtle

# Nacrtaj pravokutnik

from turtle import*

reset()

for i in range(4):

fd(140)

lt(90)

Page 26: Python by zlatko markovinovic

Linkovi

Python Homepage

http://www.python.org/

Python Tutorial

http://www.python.org/tut

Python documentation

http://www.python.org/doc

Page 27: Python by zlatko markovinovic

Za kraj!

JESTE LI NAUČILI NEŠTO NOVO?

PITANJA?