Lecție interactivă PyCharm

Depanarea programelor Python

Oprește programul la linia dorită, execută-l pas cu pas și urmărește cum se modifică variabilele.

Debug Shift + F9Step Over F8Resume F9Stop Ctrl + F2
PyCharm · main.py · Debug
n = int(input("n = "))
s = 0
while n > 0:
    c = n % 10    s = s + c
    n = n // 10
print(s)
n = 123   s = 0   c = încă necreată

1. Ce înseamnă depanarea

Depanarea este investigarea controlată a execuției. Este utilă mai ales când programul pornește, dar produce un rezultat greșit.

Sintaxă

Eroare de scriere

Lipsește, de exemplu, caracterul : după while.

Execuție

Oprire neașteptată

Programul încearcă o operație imposibilă, precum împărțirea la zero.

Logică

Rezultat greșit

Programul rulează, dar o inițializare sau o condiție este greșită.

2. Instrumentele principale

InstrumentRolScurtătură
BreakpointOprește înaintea liniei marcateclic în marginea stângă
DebugPornește depanatorulShift + F9
Step OverExecută linia curentăF8
Step IntoIntră în funcția apelatăF7
ResumeContinuă la următorul breakpointF9
StopOprește depanareaCtrl + F2

Atenție: la început folosește F8, nu F7. F7 poate deschide runpy.py. Nu ai stricat nimic și fișierul nu trebuie modificat.

3. Primul exemplu: suma cifrelor

Pentru n = 123, rezultatul trebuie să fie 6
n = int(input("n = "))
s = 0
while n > 0:
    c = n % 10
    s = s + c
    n = n // 10
print(s)
Pași: pune breakpoint la c = n % 10, pornește Debug, introdu 123 și apasă repetat F8.
PyCharm oprit la breakpoint
Program oprit înainte de executarea liniei marcate.
Parcurgeren înaintecs dupăn după
11233312
212251
31160

4. Simulator de depanare

Apasă Step Over și observă valorile pentru n = 123.

1  n = 1232  s = 03  while n > 0:4      c = n % 105      s = s + c6      n = n // 107  print(s)

Variabile

n-
c-
s-
Programul nu a fost pornit.

5. Cum citim fereastra Debug

Linia albastră

Este următoarea linie care urmează să fie executată.

Threads & Variables

Afișează variabilele existente și valorile lor curente.

Console

Primește valorile introduse prin input() și afișează rezultatele.

MainThread

Pentru exerciții simple, selectează cadrul care conține main.py.

Fișierul intern runpy.py deschis în PyCharm
Dacă se deschide runpy.py, închide fila și continuă cu F8.

6. Exemple progresive

Maximul dintre două numere
a = int(input("a = "))
b = int(input("b = "))
if a > b:
    maxim = a
else:
    maxim = b
print(maxim)
Breakpoint la if. Testează 7 și 4, apoi 2 și 9.
Numărarea numerelor pare
n = int(input("n = "))
contor = 0
for i in range(1, n + 1):
    if i % 2 == 0:
        contor = contor + 1
print(contor)
Pentru n = 6 urmărește i și contor.
Intrarea într-o funcție proprie
def patrat(x):
    rezultat = x * x
    return rezultat

n = int(input("n = "))
p = patrat(n)
print(p)
Folosește F7 o dată pentru a intra în funcție, apoi F8.

7. Depistarea unei erori de logică

Pentru n = 4 se afișează 11 în loc de 10
n = int(input("n = "))
s = 1  # inițializare greșită
for i in range(1, n + 1):
    s = s + i
print(s)
La primul breakpoint, s este deja 1. Corectarea este s = 0.
  1. Stabilește rezultatul corect pentru un exemplu mic.
  2. Alege variabilele importante.
  3. Oprește programul înaintea primei modificări.
  4. Compară valorile cu un calcul manual.
  5. Corectează o cauză și testează din nou.

Breakpoint condiționat: clic dreapta pe breakpoint și introdu o condiție, de exemplu i == 50.

8. Chestionar final

Răspunde la cele 9 întrebări și verifică rezultatul.

← Înapoi la cursul Python