ebSkola

5.1 Saraksti

Stundas uzdevums: Beigt veidot simtiem atsevišķu mainīgo un iemācīties izmantot sarakstus. Apgūsi, kā izveidot "digitālu klases materiālu sarakstu", kurā spēles gaitā vari pievienot, izņemt un kārtot priekšmetus, izmantojot Python iebūvētās metodes.

SR 2.4.14. (Sarakstu lietošana un metodes)

70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - izmēģini len, append un insert · 2. uzdevums (~25 min) - uzbūvē materiālu kasti ar pop · 3. uzdevums (~20 min) - iztestē indeksu robežas. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.

Pirms sāc: atver VS Code un izveido failu saraksts.py. Atceries: pirmā elementa indekss ir 0, tāpēc pēdējā indekss ir garums mīnus viens.

Teorija: Sarakstu (List) pamati

Saraksts ir mainīgais, kas var glabāt daudzas vērtības reizē. Sarakstus vienmēr raksta kvadrātiekavās [], un elementus atdala ar komatiem.

Metode / Funkcija Ko tā dara? Piemērs
len(saraksts) Atgriež elementu skaitu (garumu). len(["A", "B"]) → 2
.append(elements) Pievieno elementu saraksta beigās. materiali.append("marķieris")
.insert(i, el) Ievieto elementu pozīcijā i. materiali.insert(0, "taimeris")
.pop(i) Izņem elementu no pozīcijas i. iznemtais = materiali.pop(1)
.remove("vards") Izdzēš elementu pēc tā nosaukuma. materiali.remove("pieraksti")
.sort() Sakārto elementus (alfabētiski/augoši). materiali.sort()

Piezīme: Python sarakstos skaitīšana sākas no 0. Pirmais elements ir saraksts[0].

Praktiskie uzdevumi

1. uzdevums -

Izmēģini len, append un insert

Beigās tu zināsi, kur katra metode ieliek jauno elementu.

  1. Ieraksti materiali = ["marķieris", "pieraksti"].
  2. Izdrukā len(materiali) un pieraksti skaitli.
  3. Pievieno materiali.append("uzlīmes") un izdrukā sarakstu.
  4. Pievieno materiali.insert(1, "taimeris") un izdrukā vēlreiz.
  5. Pieraksti, kurā vietā nonāca uzlīmes un kurā taimeris.
  6. Izdrukā garumu vēlreiz un pārbaudi, ka tas pieaudzis par diviem.

Gatavs, kad: append ieliek beigās, insert(1, ...) - otrajā vietā, un garums ir 4.

2. uzdevums -

Uzbūvē materiālu kasti ar pop

Beigās programma pratīs gan pievienot, gan izņemt mantas.

  1. Uzraksti while True: ciklu ar izvēlni.
  2. Nolasi darbiba = input("pievienot / iznemt / beigt: ").
  3. Pievieno zaru pievienot, kas prasa nosaukumu un lieto append.
  4. Pievieno zaru iznemt, kas prasa indeksu un lieto materiali.pop(i).
  5. Pievieno zaru beigt ar break.
  6. Izdrukā sarakstu pēc katras darbības.
  7. Palaid un pievieno divas mantas, tad izņem vienu.

Gatavs, kad: pēc divām pievienošanām un vienas izņemšanas sarakstā ir par vienu mantu vairāk nekā sākumā.

3. uzdevums -

Iztestē indeksu robežas

Beigās tu zināsi, kura indeksa vērtība programmu nogāž.

  1. Palaid programmu un mēģini izņemt indeksu 0.
  2. Palaid un mēģini izņemt indeksu, kas ir lielāks par saraksta garumu.
  3. Pieraksti, kā sauc kļūdu, kas parādījās.
  4. Iztukšo sarakstu pilnībā un mēģini izņemt vēl vienu elementu.
  5. Pievieno pārbaudi if i < len(materiali): pirms pop.
  6. Palaid vēlreiz ar pārāk lielu indeksu un pārliecinies, ka programma neavarē.
  7. Pieraksti vienu secinājumu: kāpēc pēdējā elementa indekss ir len - 1.

Gatavs, kad: pirms labojuma pārāk liels indekss dod IndexError, bet pēc tā - mierīgu paziņojumu.

Papildu uzdevums - Sakārto sarakstu

Ja pamatdarbs ir gatavs, izmēģini gatavas kārtošanas metodes.

  1. Pievieno rindu materiali.sort() un izdrukā sarakstu.
  2. Pievieno rindu materiali.reverse() un izdrukā vēlreiz.
  3. Pieraksti, pēc kāda principa sort() sakārtoja vārdus.
  4. Pievieno sarakstam vārdu ar lielo sākumburtu un sakārto vēlreiz.
  5. Pieraksti, kur nonāca vārds ar lielo burtu.

Gatavs, kad: saraksts sakārtojas alfabētiski, un tu vari paskaidrot, kur nonāk lielie burti.

Koda piemērs

materiali = ["marķieris", "pieraksti"]
materiali.append("uzlīmes")
materiali.insert(1, "taimeris")

print(f"Klases materiālu kastē ir {len(materiali)} lietas:")
print(materiali)
Klases materiālu kastē ir 4 lietas:
['marķieris', 'taimeris', 'pieraksti', 'uzlīmes']