2011-05-28

Python pagrindai per 15 min.

    Išmokti Python programavimo kalbą ir jos svarbiausias konstrukcijas - galima labai greitai. Kalba gan paprasta, patraukli savo lankstumu, įgudę programuojai perpras be vargo, o pradedančiajam - gera alternatyva arba papildas programuoti šalia kokio Pascal ;) Šiame įrašė pateiksiu greitą pradžiamokslį šiai kalbai.

    Taigi parsisiunčiam ir įsirašom Python iš http://www.python.org/download/ (siulyčiau kol kas 2.7.x versiją, nes ji geriausiai dabar palaikoma ir pereiti prie 3.x nebus didelių problemų, jei ryžtumetės vėliau). Tad nieko nelaukdami - važiuojam!

    Kodą galima rašyti į Python interpretatorių tiesiogiai - išsikvietus per komandinę eilutę Start->Run, įrašom "Python", tačiau rekomenduoju rašyti skriptą, t.y. į .py failus. Susikuriam "testas.py" failą ir bandom rašyti kodą su teksto redaktoriumi Notepad. Rekomenduoju naudoti Python IDE, Notepad++ ar kitą redaktorių, kadangi jie paryškiną sintaksę, padeda užbaigti kai kurias komandas/konstrukcijas.

    Manau nėra nieko geriau kaip programavimo kalbos mokytis iš paprastų kodo pavyzdžių - taip paprasčiau, greičiau, nereikia skaityti daug literatūros, todėl pateikiu tieisioginį kodą su komentarais ir laukiamais rezultatais žemiau.  Iškart galėsite nukopijuoti ir išbandyti interpretatoriuje ar rašant script'o faile. Detalesnėms studijoms jau reiktų pasiskaityti literatūros, kad ir tarkim oficialų Python Docs - http://www.python.org/doc/ 

P.S. Python kalba yra viena iš tvarkingiausių pagal kodo išdėstymą, kadangi kodo dalys turi būti būtinai tvarkingai atitrauktos nuo kairiojo krašto - tam dažnaiusiai naudojamas 1 tabuliacijos(tab) simbolis, nors galima ir tarpo simbolį. Vis dėlto atidžiai su formatavimu - prie jo reikia priprasti :)



# cia yra komentaras
''' taip rasomas keliu eiluciu komentaras ''' print "abc" # teksto 'abc' isvedimas i konsole #rezultatas ekrane: abc 


a = 10 # kintamuju priskyrimas
b = "foo" print a, b #rezultatas ekrane: 10 foo a = "python" # priskyrimas galimas - Python kalboje kintamieji neturi tipo b = 2.718 print a, b #rezultatas ekrane: python 2.718 b = "foo" + " bar" # eiluciu sujungimas print b #rezultatas ekrane: foo bar a, b, c = 1, 2, -1 # keliu kintamuju priskyrimas is eiles print a, b, c #rezultatas ekrane: 1 2 -1 a, b = b, a # kintamuju sukeitimas vietomis print a, b #rezultatas ekrane: 2 1 eil = "labas rytas" print eil[2] # spausdina 3 raide - 'b', indeksuoja nuo 0 print len(eil) # spausdina eilutes ilgi - 11 print eil.split() # eiluciu skaldymas pagal tarpo simboli  #rezultatas ekrane: ['labas', 'rytas']





# eilutes skaitymas is konsoles ivede = raw_input("ivesk ka nors: ") print 'tu ivedei:', ivede ''' rezultatas ekrane: ivesk ka nors: python tu ivedei: python ''' # skaiciaus skaitymas num = raw_input("ivesk skaiciu: ") print 'skaicius:', int(num) # jei ivesite ne skaiciu - gausite klaida raw_input() # konsoles darbo stabdymas


def metodas(): # metodo deklaracija print "labas" # metodo vykdomas kodas metodas() # metodo iskvietimas #rezultatas ekrane: labas def foo(x): # funkcija su parametru return x+1 print 'ats =', foo(2.14) #rezultatas ekrane: ats = 3.14 kitasfoo = foo # funkcijos priskyrimas kintamajam print 'ats =', kitasfoo(0) #rezultatas ekrane: ats = 1 


# algebra
c = 6 * 2 d = c + 7 print c, d #rezultatas ekrane: 12 19 import math # importuojam matematikos moduli print 'sin(pi/2) =', math.sin(math.pi/2) #rezultatas ekrane: sin(pi/2) = 1.0 import random # atsitiktiniu skaiciu modulis print "skaicius =", random.randint(1,10 #rezultatas ekrane: skaicius = (bet koks nuo 1 iki 10) 



# salyginiai sakiniai y = 3 if y == 2: # lyginumo patikrinimas print 'y yra 2' else: print 'y nera 2' #rezultatas ekrane: y nera 2 z = 0 if y == 3 and z == 0: # salygu jungimas su and, or, not ir kt. print 'y = 3 ir z = 0' elif z == 1: print 'z yra 1' else: print 'patikrinimas nepavyko!' #rezultatas ekrane: y = 3 ir z = 0 


tuscia = [] # tuscias sarasas(masyvas) # masyvai Python kalboje neturi vieno tipo sar = [1, 2, 3, 'vienas', 'du', 'trys'] print sar, 'ilgis = ', len(sar) #rezultatas ekrane: [1, 2, 3, 'vienas', 'du', 'trys'] ilgis = 6 #saraso kopijavimas print sar[3] # ketvirto elemento spausdinimas #rezultatas ekrane: vienas print sar[-2] # 2 nuo galo elemento spausdinimas #rezultatas ekrane: du print sar[::2] # kas antro elemento spausdinimas #rezultatas ekrane: [1, 3, 'du'] del sar[3] # elemento 'vienas' pasalinimas print sar[3] #rezultatas ekrane: du print sar[1:3] # 1-2 elementu submasyvas #rezultatas ekrane: [2, 3] sar.append("keturi") # prijungimas prie galo print sar #rezultatas ekrane: [1, 2, 3, 'du', 'trys', 'keturi'] sar.remove(1) # pasalina atitinkanti elementa print sar #rezultatas ekrane: [2, 3, 'du', 'trys', 'keturi'] print 'pasalino:',sar.pop() # galinio elemento pasalinimas #rezultatas ekrane: pasalino: keturi mas = [1,2,3,4,1] # saraso elementu sumos skaiciavimas print 'suma =',sum(mas) #rezultatas ekrane: suma = 11 print mas.count(1) # reiksmes 1 pasikartojimas sarase print 'minimumas =',min(mas) print 'maksimumas =',max(mas) #rezultatas ekrane: # 2 # minimumas = 1 # maksimumas = 4 mas.extend([5,6]) # papildymas prie galo print mas #rezultatas ekrane: [1, 2, 3, 4, 1, 5, 6] mas.sort() # saraso rikiavimas print 'surikiuota:',mas #rezultatas ekrane: surikiuota: [1, 1, 2, 3, 4, 5, 6] print '5 yra mas indekse: ',mas.index(5) # pirmo atitinkancio elemento paieska #rezultatas ekrane: 5 yra mas indekse: 5 mas = [0 for i in range(0, 5)] # masyvo uzpildymas 0 print mas #rezultatas ekrane: [0, 0, 0, 0, 0] mas = [i*i for i in range(0, 5)] # masyvo uzpildymas i kvadratu: 1, 4, 9, 16, 25 print mas #rezultatas ekrane: [0, 1, 4, 9, 16] mas = [[1,2], [3,4,5]] # sarasu sarasas print mas[1] #rezultatas ekrane: [3, 4, 5] 


# for, while ciklai ir iteravimas per elementus
mas = [[1,2], [3,4,5]] for i in range(0, len(mas)): # iteracija pagal indeksa print mas[i] #rezultatas ekrane: # [1, 2] # [3, 4, 5] for elem in [1,2,3]: # iteracija pagal elementa print elem #rezultatas ekrane: # 1 # 2 # 3 sar = [2, 3, 'du', 'trys']
for i, e in enumerate(sar): # iteruoja kartu su indeksu print '[',i,'] =',e #rezultatas ekrane: # [ 0 ] = 2 # [ 1 ] = 3 # [ 2 ] = du # [ 3 ] = trys k = 0 while k < 3: # while ciklas: reiksmes k didinimas iki 3 k += 1 print 'k =', k # rezultatas ekrane: k = 3  


# darbas su failais fp = open("duomenys.txt", "w") # atidaromas failas rasymui fp.write("123 456\n") # rasymas i faila + nauja eilute fp.write(str(-11)) fp.close() # failas uzdaromas for line in file("duomenys.txt"): # skaitymas is failo print line # rezultatas: # 123 456 # -11 


# zodynas: raktas-reiksme zodynas = {'lietus': -1, 'apsiniauke': 'niuri', 'giedra': 20} print 'nuotaika kai apsiniauke?', zodynas['apsiniauke'] # indeksuojama eilute # rezultatas ekrane: nuotaika kai apsiniauke? niuri if 'lietus' in zodynas: print 'raktas "lietus" yra zodyne' # rezultatas ekrane: raktas "lietus" yra zodyne for k,v in zodynas.items(): # iteravimas pagal rakta ir reiksme kartu print 'zodyno[',k,'] =',v # rezultatas ekrane: # zodyno[ apsiniauke ] = niuri # zodyno[ giedra ] = 20 # zodyno[ lietus ] = -1 


# objektinis programavimas class Automobilis: # klases deklaracija # klases kintamieji numeris = "ABC123" speed = 0 ''' visi metodai privalo tureti parametra "self" ''' def __init__(self): # konstruktorius(neprivalomas) print "Automobilis sukurtas!" def vaziuoti(self, greitis): # kitas metodas self.speed = greitis # vidiniai kintamieji gaunami per 'self.xyz', xyz - kintamojo vardas print "vaziuojam ant",greitis car = Automobilis() # klases objekto sukurimas, konstruktorius(jei yra) kvieciamas automatiskai #rezultatas: Automobilis sukurtas! # Python kalboje objektai neturi privaciu kintamuju, taciau redaguoti juos ir tuo piktnaudziauti nereiketu print "koks numeris?", car.numeris print "koks greitis?", car.speed #rezultatas: koks numeris? ABC123 #rezultatas: koks greitis? 0 car.vaziuoti(120) # kvieciam objekto metoda #rezultatas: vaziuojam ant 120 


Komentarų nėra:

Rašyti komentarą