Uvod u jezik PYTHON

(priručnik za  predmet "Skript jezici")


© Matematički fakultet

Miljana Mladenović, Duško Vitas

O Python-u
Instalacija
Sintaksa jezika Python
Osnovne osobine
Službene reči
Operatori i njihovi prioriteti
Osnovne algoritamske strukture
Blok naredbi
if struktura
while struktura
Iskazi: break, continue, pass
Tipovi podataka u Python-u
Osnovni i ugradjeni tipovi
Brojevi
Konverzija formata
Neke matematičke funkcije
Neke random funkcije
Niske
Neke funkcije nad niskama
Formatiranje niski
Liste
Torke
Osnovni izrazi sa torkama
Rečnici
Skupovi
Operacije nad skupovima
Datoteke
Funkcije modula os za rad sa datotekama
Funkcije modula os za rad sa folderima
Izuzeci
Funkcije
Moduli
Paketi
Klase
Regularni izrazi
Baze podataka
Primeri u Netbeans-u
Primere u NetBeans-u započinjemo klasičnim primerom - Zdravo, svete! Otvorimo novi projekat Primer1 i on u sebi sadrži željeni kod.

# To change this template, choose Tools | Templates

# and open the template in the editor.

__author__="minad"

__date__ ="$Nov 1, 2010 3:26:41 PM$"

 

if __name__ == "__main__":

    print "Zdravo, svete!"



Otvorimo novi projekat Primer2 i dodamo sledeći kod. Ovaj primer konvertuje vrednosti temperatura zadatih u Celzijusima u Farenhajte i obrnuto.

 

# To change this template, choose Tools | Templates

# and open the template in the editor.

 

__author__="minad"

__date__ ="$Oct 30, 2010 2:40:18 PM$"

 

def temp():

    print "Primer 3 - Konvertor temperatura"

    z=raw_input("Odaberi opciju 1 za konverziju Farenhajt u Celzijus,\n  \

Odaberi opciju 2 za konverziju Celzijus u Farenhajt,\nOdaberi opciju 3 za \

kraj aplikacije:")

    if z=='1': # iz Fahrenhajta u Celzijuse

        x=input("Uneti temperaturu u Fahrenhajtima: ")

        t=(x-32)/1.8

        print "Temperatura u Celzijusima je: "

    elif z=='2': # iz Celzijusa u Fahrenhajte

        x=input("Uneti temperaturu u Celzijusima: ")

        t=(x*1.8)+32

        print "Temperatura u  Fahrenhajtima je: "

    elif z=='3': # kraj aplikacije

        t="Hvala sto ste koristili Primer 3 - Konvertor temperatura."   

    else:

        e=raw_input("Neispravan izbor, ponovite izbor? (d or n)")

        #f==input_false

        if e=='d' or e=='D':

            t=''

            temp()

        else:

            t="Hvala sto ste koristili Primer 3 - Konvertor temperatura."

    print t   # validacija

    if z=='1' or z=='2':

        a=raw_input("Da li zelite novu konverziju?(d or n)")

        if a=='d' or a=='D':

            t= ''

            temp()

        else:

            print "Hvala sto ste koristili Primer 3 - Konvertor temperatura."

        #

 

#poziv funkcije je jedina naredba programa

temp()



Otvorimo novi projekat Primer3 i dodamo sledeći kod. Ovaj primer kreira klasu Student, a zatim nasledjenu klasu StudentOsnovnihStudija . U glavnom programu definisane klase se instanciraju, pozivaju se njihovi metodi i na kraju se instance uklanjaju.

#Primer 3

__author__="minad"

__date__ ="$Nov 24, 2010 5:41:36 PM$"

 

if __name__ == "__main__":

    print "Klase"

print "==========================="

class Student:

   'Klasa student, metodi: prikaziRezim, promeniRezim, prikaziVrstu, promeniVrstu'

 

   naziv_fakulteta="MATF"

   rezimTabela=['budzet','samofinansiranje']

   vrsta=['osnovne','master','doktorske']

  

   def __init__( self):

      self.imeStudenta=''

      self.prezimeStudenta=''

      self.godinaStudija=''

      self.rezim_studija=''

      self.vrsta_studija=''

 

   def info(self):

       vrsta=''

       for vr in Student.vrsta:

           vrsta+=vr + ', '

       print "%s fakultet akreditovan za %s studije." %( Student.naziv_fakulteta, vrsta[0:len(vrsta) - 2])

 

   def promeniRezim(self, ime, prezime, upisanaGodina, rezim):

      self.imeStudenta=ime

      self.prezimeStudenta=prezime

      self.godinaStudija=upisanaGodina

      if rezim == 1:

         self.rezim_studija=self.rezimTabela[0]

      else:

         self.rezim_studija=self.rezimTabela[1]

        

   def prikaziRezim(self):

        print "Student %s %s skolske 2010/2011 upisao je  %s. godinu studija, rezim studiranja: %s" \

        % (self.imeStudenta,self.prezimeStudenta,student.godinaStudija,student.rezim_studija)

 

   def __del__(self):

      class_name = self.__class__.__name__

      print class_name, "instanca ukonjena"

 

 

class StudentOsnovnihStudija(Student):

    'klasa studenata osnovnih studija po smerovima'

    smer=['matematika','informatika','astronomija']

    _brojPolozenihIspita=0

    def prijaviSmer(self, smer):

        if smer == 1:

            self.smer_studija='matematika'

        elif smer == 2:

           self.smer_studija='informatika'

        else:

            self.smer_studija='astronomija'

    def prikaziRezim(self):

        print "Student %s %s skolske 2010/2011 upisao je  %s. godinu studija, rezim studiranja: %s" \

        % (self.imeStudenta, self.prezimeStudenta, self.godinaStudija, self.rezim_studija)

        print "smer:" , self.smer_studija

    def polozioIspit(self, broj):

        self._brojPolozenihIspita+=broj

 

       

#u glavnom programu

import datetime

student=Student()

student.info()

student.promeniRezim('Pera','Peric',2,1)

student.prikaziRezim()

 

datum=datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")

setattr(Student, 'datumPrijave', datum)

print "novodefinisana promenljiva instance student: ", student.datumPrijave

 

studentOsnovnih=StudentOsnovnihStudija()

studentOsnovnih.promeniRezim('Mika','Mikic',3,2)

studentOsnovnih.prijaviSmer(2)

studentOsnovnih.prikaziRezim()

polozio=studentOsnovnih.polozioIspit(4)

print "Broj ispita koje je student %s %s polozio je %i" %(studentOsnovnih.imeStudenta, studentOsnovnih.prezimeStudenta, studentOsnovnih._brojPolozenihIspita)

 

print "================================="

print "built-in promenljive klase"

print "Student.__name__:", Student.__name__

print "Student.__doc__:", Student.__doc__

print "Student.__module__:", Student.__module__

print "Student.__bases__:", Student.__bases__

print "Student.__dict__:", Student.__dict__

print "================================="

print "uklanjanje instanci klase - destuktor"

del student

 

#print "================================="

 

Beograd, novembar 2010.