• Dizaino ir programavimo pamokos

  •  
    Thread Rating:
    • 0 Votes - 0 Average
    • 1
    • 2
    • 3
    • 4
    • 5
    Pradedam programuot su Python #3 [Duomenų sąrašai]

    print ('Python coder')


    ***
    127

    0
    Post: #1
    RE: Pradedam programuot su Python #3 [Duomenų sąrašai]
    Jei turime pavyzdžiui koki nors sarašą jį galima išsaugoti taip vadinamoje duomenų struktūroje “sąrašas” (“list”). Kitose programavimo kalbose tai dažniausiai vadinama “masyvu” (“array”). Masyvuose duomenys būna sunumeruoti ir juos galima pasiekti pagal eilės numerį.

    Galima sąrašo reikšmes išvardinti pačiam:

    >>> listas = [5, 3, 11, -1, 18, 0]
    >>> listas

    Gauname: [5, 3, 11, -1, 18, 0]

    O tada galima pasiekti bet kurį sąrašo elementą (ir jį naudoti kaip kintamąjį):

    >>> print listas[2]
    Gauname: 5

    Atkreikptikte dėmesį, kad numeruojama nuo 0. Sąrašo elementui duosime naują reikšmę:

    >>> my_list[2] = 1000

    >>> my_list
    Gauname: [4, 7, 1000, -2, 13, 0]

    Papildysime sąrašą nauju elementu (sąraše gali kartotis reikšmės) (Sąrašai, kuriuose galima laisvai keisti elementų kiekį, vadinami dinaminiais sąrašais).

    >>> my_list.append( 13 )
    >>> my_list

    Gauname: [4, 7, 1000, -2, 13, 0, 13]

    Pažiūrim, kaip pasikeitė sąrašas: (interaktyvioj aplinkoj IDLE užtenka parašyti kintamojo pavadinimą, o programoje reiktų rašyt “print my_list”)

    >>> my_list
    Gauname: [4, 7, 1000, -2, 13, 0, 13]

    Daugelyje algoritmų tenka sukeisti sąrašo/masyvo reikšmes vietomis (pavyzdžiui, 1 ir 3 vietų reikšmes):

    >>> my_list[1], my_list[3] = my_list[3], my_list[1]

    >>> my_list[1]
    Gauname: -2
    >>> my_list[3]
    Gauname: 7


    Sąrašus galima sugeneruoti. Dažnai tam naudojama range() funkcija. Ji leidžia nurodyti pradinę reikšmę, galutinę reikšmę ir žingsnį. Tik pabaigos reikšmė skaičiuojama “neimtinai”, pvz, nuo 1 iki 10:

    >>> range(1, 11)
    Gauname: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    nuo 1 iki 20 kas trečią:

    >>> list1 = range(1, 21, 3)
    Gauname: [1, 4, 7, 10, 13, 16, 19]

    Galima sužinoti sąrašo elementų kiekį (sąrašo ilgį): (funkcija “len()” yra sutrumpintimas žodžio “length”)

    >>> len(list1)
    Gauname: 7

    >>> mano_saraso_ilgis = len(my_list)
    Gauname: mano_saraso_ilgis: 7

    Pasitaiko atvejis, kai norisi matyti kiekvieno elemento eilės nr ir reikšmę.

    Tuomet galima susikurti seką, atitinkančią sąrašo elementų numerius:

    >>> range( len(my_list) )
    Gauname: [0, 1, 2, 3, 4, 5, 6]

    Ir jos pagalba perrinkti sąrašo elementus:

    >>> for nr in range( len(my_list) ): print nr, my_list[nr]
    0 4
    1 -2
    2 1000
    3 7
    4 13
    5 0
    6 13


    taip pat yra funkcija sum()

    >>> sum(my_list)
    Gauname: 1035

    na ir galima paskaičiuoti sąrašo skaičių vidurkį

    >>> average = 1.0 * sum(my_list)/len(my_list) # iš 1.0 padauginau, kad neapvalintų
    Gauname: average: 147.85714285714286

    sąrašą galima surikiuoti didėjimo tvarka:

    >>> my_list.sort()

    pažiūrėkim, kaip jis atrodo po rikiavimo:

    >>> print my_list
    Gauname: [-2, 0, 4, 7, 13, 13, 1000]

    Taip pat galima sąrašą “apsukti”:

    >>> my_list.reverse()
    >>> my_list

    Gauname: [1000, 13, 13, 7, 4, 0, -2]

    Kartais norima įterpti ar ištrinti sąrašo elementą:

    >>> my_list.insert(0, 666) # į pradžią įterpiam 666
    >>> my_list.pop(-1) # ištrinam paskutinį sąrašo elementą
    Gauanme: -2
    >>> my_list # žiūrim, kas pasikeitė
    Gauanme: [666, 1000, 13, 13, 7, 4, 0]
    >>> my_list.index(7) # kurioje vietoje yra skaičius 7?
    Gauname: 4
    >>> 666 in my_list # ar skaičius 666 yra sąraše?
    Gauanme: True


    Na viskas...

    Nepamirškite perskaityti mano kitas pamokas bei laukite kitų Wink

    Sekmės mokintis (y)

    © TwiPz

    [center]Hello [Image: blackhat.gif][/center]
    2013-08-24 12:25
    Find Quote


    Possibly Related Threads...
    Thread: Author Replies Views: Last Post
      Pradedam programuot su Python #2 Generic- 0 1544 2013-08-24 12:06
    Last Post: Generic-
      Pradedam programuot su Python #1 [Kintamieji] Generic- 0 1835 2013-08-24 11:59
    Last Post: Generic-
      Kaip gauti Python. Generic- 2 2759 2013-08-23 18:02
    Last Post: Generic-
      Python vadovėliai įvairioms amžiaus grupėms Generic- 1 2156 2013-06-15 20:44
    Last Post: ErikasR
      PythonJam - Kodėl reikia rinktis Python Generic- 2 2141 2013-06-08 09:35
    Last Post: Generic-


    About DESCO

    Mes esame ne komercinis projektas, norime, jog Lietuvos jaunimas vis sparčiau brautųsi į technologijų amžių. Negalima sėdėti vietoje, reikia kažką veikt, todėl mūsų projektas tam puikiai tinka. Galima pas mus išmokt kažko naujo, taip pat nepamirškite, kad ir jūs galite mokyti kitus! Žinių dalinimasis geriną lietuvių mentalitetą, todėl nesmerk kito, o pamokyk!