Comprendere e correggere i comuni errori di sintassi di Python

Commenti: 0

Ogni linguaggio di programmazione ha un insieme di regole o grammatica che segue. L'infrazione di queste regole provoca i cosiddetti errori di sintassi di Python, che possono causare il fallimento del codice. Questi problemi capitano a tutti, sia a chi è agli inizi sia a chi codifica da anni. Se vi siete mai chiesti: "Quali sono gli errori di sintassi in Python?". Questo articolo tratta i più comuni e spiega come risolverli durante la codifica.

Errori comuni di Python e correzioni

Quando si verifica un errore di sintassi, Python fornisce un messaggio che indica il problema. Questo messaggio tipicamente include:

  • Il nome del file e il numero di riga in cui si è verificato il problema.
  • La linea di codice specifica che causa l'errore.
  • Un trattino (^) che indica il punto esatto in cui l'interprete si è confuso.
  • Una descrizione dell'anomalia che suggerisce la natura del problema.

Diamo un'occhiata ai comuni errori di sintassi in Python che i programmatori incontrano spesso.

Parentesi mancanti o non corrispondenti

Uno degli errori più comuni dei principianti è dimenticare di chiudere le parentesi. Questo è particolarmente comune nelle chiamate di funzione e nelle strutture annidate.

Esempio:

print("Hello, World!"

І messaggio di problema:

1.png

Correggere:

Assicurarsi che tutte le parentesi siano chiuse correttamente.

print("Hello, World!")

Errori di indentazione in Python

L'indentazione specifica i blocchi di codice. In caso di problemi di indentazione, possono verificarsi errori di sintassi in Python.

Esempio:

def greet():
print("Hello, World!")

Messaggio di emissione:

2.png

Correggere:

Indentare correttamente il blocco di codice.

def greet():
    print("Hello, World!")

Errori di punteggiatura mancanti in elenchi o dizionari

Dimenticare di inserire le virgole tra gli elementi di elenchi o dizionari è un altro errore frequente.

Esempio:

fruits = {"type": "sweert" "name": "orange"}

І messaggio di problema:

3.png

Correggere:

Aggiungere la virgola mancante tra "sweert" e "nome".

fruits = {"type": "sweert", "name": "orange"}

Parole chiave riservate di Python utilizzate in modo improprio

L'uso improprio di queste parole chiave può causare problemi di sintassi. Le parole chiave sono parole riservate che hanno un significato speciale.

Esempio:

class = "Beginner"

Messaggio di emissione:

4.png

Correggere:

Scegliete un nome diverso che non sia una parola chiave riservata.

level = "Beginner"

Nomi di variabili illegali

I nomi delle variabili devono rispettare regole specifiche. L'uso di nomi di variabili illegali, come quelli che iniziano con un numero o contengono spazi, provoca errori di sintassi in Python.

Esempio:

2name = "John"

І messaggio di problema:

5.png

Correggere:

Utilizzare un nome di variabile valido.

name2 = "John"

Stringhe non chiuse

Le stringhe devono essere racchiuse tra virgolette corrispondenti. Se si dimentica di chiudere una stringa, si verifica un problema di sintassi.

Esempio:

message = "Hello, World!

І messaggio di problema:

6.png

Correggere:

Assicurarsi che la stringa sia chiusa con lo stesso tipo di virgolette.

message = "Hello, World!"

I due punti mancanti nelle dichiarazioni composte

Un problema di sintassi può verificarsi se mancano i due punti (:) alla fine di un'istruzione condizionale composta, come if, for, while o def.

Esempio:

def greet()
    print("Hello, World!")

І messaggio di problema:

7.png

Correggere:

Aggiungere i due punti alla fine della dichiarazione composta.

def greet():
    print("Hello, World!")

Operatore di assegnazione Python fuori luogo

L'uso di operatori non corretti può causare errori di sintassi in Python. Ciò include gli operatori di assegnazione e gli operatori di confronto.

Esempio:

if x = 10:
    print("x is 10")

І messaggio di problema:

8.png

Correggere:

Utilizzare l'operatore di confronto corretto.

if x == 10:
    print("x is 10")

Suggerimenti per evitare gli errori che si commettono spesso quando si usa Python

  1. L'editing con Jupyter notebook o VS Code aiuta a evidenziare i segni e i problemi più comuni mentre si scrive o si modifica il codice all'interno dell'editor.
  2. Scrivere e testare il codice in modo incrementale: ciò consente di verificare tempestivamente la presenza di errori di sintassi nel codice Python e di correggerli prima che diventino più difficili da rintracciare.
  3. Indentazione coerente: attenersi a un uso coerente di spazi o tabulazioni per l'indentazione, per evitare confusione e problemi.
  4. Utilizzate strumenti di linting: eseguite pylint o flake8 sul vostro codice per verificare la presenza di parti potenzialmente problematiche e l'aderenza agli standard di codifica.
  5. Consultare la documentazione: tenere a portata di mano la documentazione ufficiale per comprendere le regole di sintassi e le convenzioni del linguaggio.

Gestione degli errori di sintassi in pratica

Consideriamo un semplice script di web scraping che incontra qualche bug e che aiuta a capire come correggere gli errori di sintassi nel debugger integrato in python, pdb.

Debug di uno script di web scraping con pdb

Codice originale:

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

titles = soup.find_all("h1")
for title in titles
    print(title.text)

І messaggio di problema:

9.png

Correggere:

Aggiungere i due punti mancanti dopo il ciclo for.

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

titles = soup.find_all("h1")
for title in titles:
    print(title.text)

Utilizzo di pdb per il debug:

Aggiungere la seguente riga prima del ciclo per avviare il debugger.

import pdb; pdb.set_trace()

Aggiungere un codice di oscuramento con segni di interruzione:

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

titles = soup.find_all("h1")
import pdb; pdb.set_trace()
for title in titles:
    print(title.text)

Quando si esegue lo script, il debugger pdb si avvia al punto di interruzione.

> /path/to/your/script.py(10)()
-> for title in titles:
(Pdb)

Comandi di debug:

  • n (next): esegue la riga di codice successiva.
  • c (continue): procede con l'esecuzione fino al raggiungimento del punto di interruzione successivo.
  • p variable_name: stampa il valore di variable_name.

Esempio di sessione:

(Pdb) n
> /path/to/your/script.py(11)()
-> print(title.text)
(Pdb) p titles
[<h1>Example Domain</h1>]
(Pdb) c
Example Domain

Con pdb, è possibile eseguire continuamente il programma, osservare i valori delle diverse variabili e comprendere come viene eseguito il codice, consentendo di individuare e risolvere rapidamente i problemi.

Evitare gli errori di runtime di Python

Utilizzando il pdb, è possibile eseguire il programma, controllare i valori delle variabili importanti e seguire il flusso di controllo per individuare bug ed errori logici. Problemi come la divisione per zero, l'accesso a elementi fuori range in un elenco o l'uso di variabili non definite sono problemi comuni che si possono individuare in questo modo.

Esempio:

numbers = [1, 2, 3]
print(numbers[3])

І messaggio di problema:

10.png

Correggere:

Assicurarsi di accedere a indici di lista validi.

print(numbers[2])

Gestione delle eccezioni

I blocchi Try-except consentono di avvolgere il codice che potrebbe causare problemi. Se questi problemi vengono individuati, il programma può continuare a funzionare senza problemi anche se incontra errori di sintassi nel codice.

Esempio:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("You can't divide by zero!")

Pensieri finali

Familiarizzare con gli errori più comuni ed esaminare gli esempi di errori di sintassi in Python è una cosa che ogni sviluppatore dovrebbe fare. Più si presta attenzione ai messaggi diagnostici e più velocemente li si corregge, più il codice sarà fluido. Utilizzate strumenti e suggerimenti che supportino realmente il vostro lavoro.

Commenti:

0 Commenti