Python clasa a 9-a · Manual Python
Laborator Python
LECȚIE · CAPITOLUL 8

8.3. Căutare, numărare și poziții – index și count

Prima poziție, numărul de apariții și tratarea valorilor absente

VERIFICĂ
→
LOCALIZEAZĂ
→
NUMĂRĂ
→
TRATEAZĂ
01
OBIECTIVE

La finalul lecției vei putea...

01

Explicarea rolului metodelor index() și count

Explicarea rolului metodelor index() și count().

02

Determinarea primei poziții a unei valori.

Determinarea primei poziții a unei valori.

03

Numărarea aparițiilor unei valori.

Numărarea aparițiilor unei valori.

04

Diferențierea dintre apartenență, poziție și

Diferențierea dintre apartenență, poziție și număr de apariții.

05

Tratarea corectă a cazului în care valoarea c

Tratarea corectă a cazului în care valoarea căutată nu există.

✓
Checkpoint

Poți explica, în propriile cuvinte, ideea centrală a lecției?

02
EXPLICAȚIE

Căutare, numărare și poziții – index și count

În lecția precedentă am verificat dacă o valoare aparține unei liste. Acum vrem să aflăm unde apare și de câte ori apare. Pentru aceasta folosim metodele index() și count().

index()

L.index(x) returnează indicele primei apariții a valorii x. Este o metodă a obiectului list și se apelează cu notația L.index(x).

Dacă x nu există, index() produce ValueError. Pentru o căutare sigură, putem verifica mai întâi x in L și apoi apela index().

count()

L.count(x) returnează de câte ori apare x în listă. Dacă valoarea nu apare, rezultatul este 0.

03
EXEMPLU INTUITIV

Înțelegem conceptul înainte de problemă

Într-o listă de coduri de produse, count(15) răspunde la întrebarea „de câte ori a apărut produsul 15?”, iar index(15) indică prima poziție la care a fost întâlnit.

Găsește prima poziție

L=[4,7,4,9,4]

Numără aparițiile

—

04
PYTHON

Aplicarea conceptelor în Python

L = [4, 7, 4, 9, 4]
print(L.index(4))
print(L.count(4))

x = 8
if x in L:
    print(L.index(x))
else:
    print("Valoarea nu există")

index() caută prima apariție; dacă vrem doar să știm dacă există, in este mai potrivit.

05
ALGORITM / PSEUDOCOD

Descrierea algoritmului înaintea implementării

ALGORITM PrimaPoziție
    dacă x aparține lui L atunci
        p ← prima poziție a lui x în L
        afișează p
    altfel
        afișează "Valoarea nu există"
SFÂRȘIT ALGORITM

ALGORITM NumărApariții
    k ← numărul aparițiilor lui x în L
    afișează k
SFÂRȘIT ALGORITM
06
ATENȚIE!

Erori și confuzii frecvente

  • index() nu returnează toate pozițiile, ci prima poziție.
  • index(x) pentru o valoare absentă produce ValueError.
  • count(x) pentru o valoare absentă produce 0.
  • Nu confunda indicele cu numărul de apariții: pentru L=[5,2,5], index(5)=0, count(5)=2.
07
EXEMPLU REZOLVAT

Prima poziție și numărul de apariții

Enunț

Se dă lista L=[7,4,9,4,6,4]. Pentru valoarea x=4 determinați prima poziție și numărul de apariții.

Analiză

4 există în listă. Prima poziție se obține cu index, iar numărul aparițiilor cu count.

Algoritm / pseudocod

ALGORITM PrimaPoziție
    dacă x aparține lui L atunci
        p ← prima poziție a lui x în L
        afișează p
    altfel
        afișează "Valoarea nu există"
SFÂRȘIT ALGORITM

ALGORITM NumărApariții
    k ← numărul aparițiilor lui x în L
    afișează k
SFÂRȘIT ALGORITM

Python

L = [7, 4, 9, 4, 6, 4]
x = 4

if x in L:
    print("Prima poziție:", L.index(x))
    print("Apariții:", L.count(x))
else:
    print("Valoarea nu există")

Urmărirea variabilelor

index(4) este 1, iar count(4) este 3.

Testare

TestDateRezultat așteptat
Caz normalx=4prima poziție 1; 3 apariții
Valoare absentăx=10mesajul „Valoarea nu există”
O singură aparițiex=7prima poziție 0; 1 apariție

Justificarea soluției

Fiecare operație din program corespunde unei cerințe. Rezultatul poate fi controlat pornind de la lista inițială și urmărind efectul fiecărei instrucțiuni. Testele verifică atât comportamentul obișnuit, cât și situațiile relevante.

08
EXERCIȚII DE BAZĂ

Aplicare progresivă

  1. Pentru [2,5,2,7,2], determină index(2) și count(2).
  2. Verifică înainte de index dacă 10 există în [3,6,9].
  3. Determină de câte ori apare 0 în [0,1,0,2,0].
  4. Pentru o listă de nume, determină prima poziție a numelui „Ana”.
09
EXERCIȚII DE APROFUNDARE

Generalizare și cazuri-limită

  1. Explică de ce index(5) și count(5) oferă informații diferite.
  2. Scrie un program care citește o listă și o valoare x și afișează prima poziție numai dacă x există.
  3. Determină pentru fiecare dintre valorile 2, 4 și 8 din [2,4,2,6,4,2] prima poziție și numărul de apariții.
  4. Construiește un test pentru lista goală și explică rezultatele lui in și count.
10
VERIFICARE

Verifică dacă ai înțeles

Întrebări conceptuale și itemi algoritmici

1. Ce returnează L.index(x)?

Răspunde în caiet sau în programul tău.

2. Ce returnează L.count(x) dacă x nu apare?

Răspunde în caiet sau în programul tău.

3. Ce eroare poate produce index?

Răspunde în caiet sau în programul tău.

4. De ce este util x in L înainte de L.index(x)?

Răspunde în caiet sau în programul tău.

5. Pentru L=[8,3,8,8], care sunt index(8) și count(8)?

Răspunde în caiet sau în programul tău.

1. Ce returnează L.index(x)?

2. Ce returnează L.count(x)?

3. Ce se întâmplă dacă index caută o valoare absentă?

4. Ce returnează count pentru o valoare absentă?

5. De ce verificăm x in L înainte de index?

6. Pentru [8,3,8], index(8) este?

11
MINI-PROIECT

Aplicație integratoare

MISIUNE

Registru de prezență

Registru de prezență: memorează codurile elevilor prezenți într-o listă. Pentru un cod cerut, afișează dacă apare, prima poziție și numărul de apariții. Testează atât un cod existent, cât și unul absent.

Cerințe

Concepte ale lecției01
Python corect02
Testare03
Justificarea soluției04
Documentare05

Ai terminat lecția?

Recitește obiectivele, verifică exercițiile și testează mini-proiectul.