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

Neke funkcije nad niskama

 

 

<string>.split(<razdelnik>)     #daje listu vrednost dobijenih podelom do razdelnika i od razdelnika, podrazumevana vrednost za razdelnik je praznina (space).

>>>ss="neki tekst koji treba razdeliti razdelnikom, implicitono je to praznina"

>>>print ss.split() 

['neki', 'tekst', 'koji', 'treba', 'razdeliti', 'razdelnikom,', 'implicitono', 'je', 'to', 'praznina']

>>>indeks=0

>>>sss=ss.split()

>>>while (indeks<len(sss)):

...   print sss[indeks]

...   indeks = indeks + 1

neki

tekst

koji

treba

razdeliti

razdelnikom,

implicitono

je

to

praznina

>>>print "moze split i sa datim razdelnikom"

>>>ss="neki|tekst|koji|treba|razdeliti|razdelnikom|,|implicitono|je|to|praznina"

>>>indeks=0

>>>sss=ss.split('|')

>>>while (indeks<len(sss)):

...        print sss[indeks]

...        indeks = indeks + 1

       

<string>.replace(<old>, <new>, <brojZamena>)   # ako se brojZamena ne navede, izvrše se

                                                 # sve zamene u tekstu koje se mogu pronaći

>>> ss="neki|tekst|koji|treba|razdeliti|razdelnikom|,|implicitono|je|to|praznina"

>>> print ss.replace('|', '&')

neki&tekst&koji&treba&razdeliti&razdelnikom&,&implicitono&je&to&praznina

       

<string>.find(<tekst>, <start>,<end>)   # vraća indeks prvog pojavljivanja navedenog

                                      # teksta <tekst>, tražeći u opsegu od indeksa 

                                      # <start> do <end> niske vrednosti objekta  

                                      # <string>, a ako ga ne nađe, onda vrati   

                                                                  # vrednost -1. 

>>> ss="neki|tekst|koji|treba|razdeliti|razdelnikom|,|implicitono|je|to|praznina"

>>> print ss.find('koji')

11

>>> print ss.find('koji', 0, 10)

-1

>>> ss.index('koji', 0, 20)   # Pronalazi prvo pojavljivanje podstringa uz 

                                # podizanje izuzetka, ako ga ne nađe

11

       

<glue>.join(<lista>) # vraća nisku iz liste  <lista> konkatenaciojom vrednosti

# <glue> između #elemenata liste.

>>> ss=["neki","tekst","koji","treba","spojiti"]

>>> print '%'.join(ss)"

neki%tekst%koji%treba%spojiti

#ili

>>> string1="u "

>>> string2="Programiranje ", "Python-u!"

>>> print string1.join(string2)

Programiranje u Python-u!

       

       

<string>.strip()             # uklanja  beline sa oba kraja vrednosti niske.

<string>.lstrip()           # uklanja  beline sa levog kraja vrednosti niske .

<string>.rstrip()           # uklanja  beline sa desnog kraja vrednosti niske.

       

>>> ss="     neki tekst koji ima         previse belina     "

>>> print ss.lstrip()

>>> print ss.rstrip()

>>> print ss.strip()

neki tekst koji ima               previse belina          

     neki tekst koji ima               previse belina

neki tekst koji ima               previse belina

       

for  <char>  in  <string>              #foreach petlja

>>> ss="neki tekst"

>>> for slovo in ss:

. . .      print slovo

n

e

k

i

  

t

e

k

s

t

       

       

<traženiString> in <stringUKomTražimo>      #provera prisutnosti podniske u datoj niski

>>> ss="neki tekst u kom trazimo deo teksta"   

>>> if "tekst" in ss:

. . . print "ima"

. . . else:

. . . print "nema"

ima

       

eval(<string>)                 #izračunava izraz, ukoliko je to moguće

>>>print eval("11+11")

22

>>>print eval("2.3 + 2.3")

4.6

>>>print eval("kafa + mleko")

nema rezultata

       

       

Dok neki programski jezici dopuštaju direktnu kombinaciju niski i brojeva, u Python-u to nije moguće, već se broj mora konvertovati u nisku str() funkcijom.

>>>print "Pera Peric ima  " + '25' + " godina!"

Pera Peric ima  25 godina!

       

ljust(<width>,<fillchar>), rjust(<width>,<fillchar>), center(<width>,<fillchar>)             # poravnanje niski

>>> ss="Pera Peric, student"

>>> print ss.ljust(30, '_')

Pera Peric, student___________

>>> print ss.rjust(30, '_')

___________Pera Peric, student

>>> print ss.center(30, '_')

_____Pera Peric, student______

       

<string>. upper()          # konvertovanje malih u velika slova

<string>. lower()          # konvertovanje velikih u mala slova

<string>. title()    # konvertovanje u engleski naslov

<string>. swapcase()     # konvertovanje u suprotnu veličinu

<string>. capitalize()   # konvertovanje u rečenični oblik (prvo slovo veliko, ostala mala)

>>> ss= "konverzija slova malih u velike i obratno"

>>> print ss.upper()

KONVERZIJA SLOVA MALIH U VELIKE I OBRATNO

>>> sV= ss.upper()

>>> print sV.lower()

konverzija slova malih u velike i obratno

>>> print ss.title()

Konverzija Slova Malih U Velike I Obratno

>>> ss="kOnVeRzIjA sLoVa MaLiH u VeLiKe I oBbRaTnO"

>>> print ss.swapcase()

KoNvErZiJa SlOvA mAlIh U vElIkE i ObBrAtNo

>>> print ss.capitalize()

Konverzija slova malih u velike i obratno

       

<string>.isalnum()        #provera da li data niska sadrži samo alfanumerike, u kom slučaju se                                                     # vraća vrednost True, inače se vraća vrednost False

>>> ss="Pera Peric ima  25 godina!"

>>> if ss.isalnum() == False:

. . .     print "data niska ne sadrzi samo alfanumerike"

data niska ne sadrzi samo alfanumerike

>>> ss="PeraPericima25godina"

>>>if ss.isalnum() == True:

. . .     print "data niska  sadrzi samo alfanumerike"

data niska  sadrzi samo alfanumerike

       

<string>. isalpha ()      # provera da li dati string sadrži samo alfabetske znake, u kom slučaju                                  # se vraća vrednost True, inače se vraća vrednost False

>>> ss="Pera Peric ima  25 godina!"

>>> if ss.isalpha() == False:

. . .     print "data niska ne sadrzi samo alfabetske znake"

. . .     print ss.isalpha()

data niska ne sadrzi samo alfabetske znake

False

       

<string>. isdigit ()      #provera da li data niska sadrži samo numeričke znake, u kom slučaju                                                    # se vraća vrednost True, inače se vraća vrednost False

       

>>> ss="9876543210"

>>>if ss.isdigit() == True:

. . .    print "data niska  sadrzi samo numericke znake"

. . .    print ss.isdigit()

data niska  sadrzi samo numericke znake

True

       

<string>. isspace()       #provera da li data niska  sadrži samo beline(SPACE), u kom slučaju se                                                    # vraća vrednost True, inače se vraća vrednost False

>>> ss="      "

>>>if ss.isspace() == True:

. . .    print "data niska  sadrzi samo beline"

. . .    print ss.space()

data niska  sadrzi samo beline

True

       

<string>.center(width)                                  # centrira nisku <string> u polju dužine width

       

<string>.encode([encoding[,errors]])    # vraća kodnu stranu niske <string>

       

<string>.endswith(suffix[,start[,end]]) # proverava da li  <string> počinje ili završava suffix-om

       

<string>.split([sep[,maxsplit]])                 # deli  nisku <string> koristeći sep kao razdelnik. maxsplit je

 # najveći broj deljenja koji se može izvršiti.

       

<string>.splitlines([keepends])                # deli  nisku <string> u listu linija. Ako je  keepends=1,

# čuvaju se kontrolni znaci

       

<string>.startswith(prefix[,start[,end]])  # provera da li niska <string> počinje prefix-om

       

<string>.translate(table[,deletechars]) # menja nisku <string> upotrebom transformacijske tabele znakova

       

 

Beograd, novembar 2010.