Upload
agencija-za-odgoj-i-obrazovanje-education-and-teacher-training-agency
View
1.337
Download
7
Embed Size (px)
Citation preview
PYTHON
Zlatko Markovinović, prof. mentor
Gimnazija „Matija Mesić”, Slavonski Brod
Što, zašto i kako?
Detektirati probleme nastave programiranja
Ustanoviti rješenje koje zadovoljava
Pripremiti nastavnike
Prilagoditi nastavne planove i programe
Programski jezici
Š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
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
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
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
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
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
Š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()
Š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)
Zašto Python?
jezik za početnike
jezik kojim djeca zavole programiranje
jezik koji darovitima otvara mogućnosti
jezik koji ima smisla učiti
Python instalacija
http://www.python.org/
Python 2.6.4 (14,5 MB)
Python GUI
Interpreter
Enter za izvršavanje programske linije
Pisanje i pokretanje skripte
za pisanje skripte "File"->"New window”
pokretanje skripte “Run"->"Run Module F5"
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'>
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
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
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
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"
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!
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
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
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
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)
Linkovi
Python Homepage
http://www.python.org/
Python Tutorial
http://www.python.org/tut
Python documentation
http://www.python.org/doc
Za kraj!
JESTE LI NAUČILI NEŠTO NOVO?
PITANJA?