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.
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.
- Ieraksti
materiali = ["marķieris", "pieraksti"]. - Izdrukā
len(materiali)un pieraksti skaitli. - Pievieno
materiali.append("uzlīmes")un izdrukā sarakstu. - Pievieno
materiali.insert(1, "taimeris")un izdrukā vēlreiz. - Pieraksti, kurā vietā nonāca
uzlīmesun kurātaimeris. - 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.
- Uzraksti
while True:ciklu ar izvēlni. - Nolasi
darbiba = input("pievienot / iznemt / beigt: "). - Pievieno zaru
pievienot, kas prasa nosaukumu un lietoappend. - Pievieno zaru
iznemt, kas prasa indeksu un lietomateriali.pop(i). - Pievieno zaru
beigtarbreak. - Izdrukā sarakstu pēc katras darbības.
- 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āž.
- Palaid programmu un mēģini izņemt indeksu
0. - Palaid un mēģini izņemt indeksu, kas ir lielāks par saraksta garumu.
- Pieraksti, kā sauc kļūdu, kas parādījās.
- Iztukšo sarakstu pilnībā un mēģini izņemt vēl vienu elementu.
- Pievieno pārbaudi
if i < len(materiali):pirmspop. - Palaid vēlreiz ar pārāk lielu indeksu un pārliecinies, ka programma neavarē.
- 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.
- Pievieno rindu
materiali.sort()un izdrukā sarakstu. - Pievieno rindu
materiali.reverse()un izdrukā vēlreiz. - Pieraksti, pēc kāda principa
sort()sakārtoja vārdus. - Pievieno sarakstam vārdu ar lielo sākumburtu un sakārto vēlreiz.
- 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)
['marķieris', 'taimeris', 'pieraksti', 'uzlīmes']