Scrivere codice funzionante non è sempre sufficiente; dovresti provare a scrivere un codice ben strutturato che sia anche facile da capire. Il codice pulito renderà più facile per te e per gli altri mantenere il tuo software.
Python ha molte caratteristiche e funzioni che possono aiutarti a scrivere codice più pulito. Qui ci sono alcuni dei migliori.
1. Automatizza la chiusura delle risorse con Context Manager
La chiusura manuale delle risorse può essere scomoda quando il codice interagisce con molte risorse. Potresti dimenticare di chiudere una risorsa. Ciò fa sì che il tuo programma utilizzi le risorse di sistema in modo inefficiente, il che può portare a un errore perdita di memoria.
Questo codice apre un file, quindi lo chiude manualmente:
file = apri('prova.txt', 'R')
file_contents = file.read()
file.chiudi()
parole = file_contents.split(' ')
word_count = len (parole)
stampa (word_count)
Puoi automatizzare la chiusura del file utilizzando un gestore di contesto. I gestori di contesto gestiscono le risorse per te, quindi non devi ricordarti di gestirle manualmente. Usa il con istruzione per creare un contesto per gestire una risorsa:
con aprire('prova.txt', 'R') COME file:
file_contents = file.read()
parole = file_contents.split(' ')
word_count = len (parole)
stampa (word_count)
Il codice in questo blocco viene eseguito nel contesto dell'oggetto file that aprire ritorna. Python chiude automaticamente quel file quando il codice lascia quel contesto, anche se si verifica un'eccezione.
2. Scrivere istruzioni condizionali più pulite
Potresti ritrovarti a scrivere molto codice non necessario quando hai a che fare con istruzioni if-else. Python ha operatori ternari che ti aiuteranno a scrivere istruzioni più compatte. Il blocco di codice seguente mostra una normale istruzione if-else.
condizione = VERO
Se condizione:
x = 1
altro:
x = 0
stampa (x)
Puoi riscrivere questo codice utilizzando un operatore ternario che ti consente di scrivere la condizione in una singola riga di codice.
condizione = VERO
x = 1Se condizione altro0
stampa (x)
È importante notare che è necessario utilizzare gli operatori ternari quando si implementa la logica semplice. Nella logica più complessa e nelle istruzioni condizionali nidificate, l'operatore ternario può diventare difficile da comprendere.
3. Tenere traccia degli elementi con la funzione Enumerate
Quando si esegue l'iterazione su un elenco Python, è possibile accedere all'indice dell'elemento corrente in due modi. Un modo è usare il tradizionale ciclo for. Funziona bene, ma il codice non è così pulito come potrebbe essere. Richiede inoltre di inizializzare l'indice manualmente.
automobili = ['Buatti', "Mercedes", "Toyota"]
indice = 0
per auto In automobili:
stampa (indice, auto)
indice += 1
L'altro modo è usare la funzione di enumerazione incorporata di Python. Ciò consentirà di accedere all'indice e al valore corrispondente nell'elenco durante il ciclo.
automobili = ['Buatti', "Mercedes", "Toyota"]
per indice, macchina In enumerare (automobili):
stampa (indice, auto)
Ora non è necessario tenere traccia dell'indice manualmente.
4. Loop su più elenchi con la funzione Zip
È inoltre possibile utilizzare la funzione enumerate per scorrere più elenchi contemporaneamente. Ottieni l'indice del primo elenco, quindi utilizzalo per accedere ai valori corrispondenti in altri elenchi.
nomi_inglesi = ['cibo', 'acqua', 'auto']
nomi_spagnoli = ['alimento', 'acqua', 'auto']
per indice, nome In enumerare (english_names):
spagnolo = nomi_spagnoli [indice]
stampa (F' {nome} in spagnolo è {spagnolo}')
Funziona bene, ma dovrai scrivere molto codice non necessario se il numero di liste aumenta. Per scrivere un codice più pulito puoi usare la funzione zip e passargli i nomi della tua lista.
nomi_inglesi = ['cibo', 'acqua', 'auto']
nomi_spagnoli = ['alimento', 'acqua', 'auto']
per inglese spagnolo In zip (nome_inglese, nome_spagnolo):
stampa(F' {inglese} in spagnolo è {spagnolo}')
Dovresti continuare a usare la funzione enumerate to scorrere su un singolo elenco. Ma se stai eseguendo il looping su più elenchi insieme, considera l'utilizzo della funzione zip.
Quando si immettono informazioni sensibili, l'input non dovrebbe essere visibile come testo normale sullo schermo. Il solito modo di prendere input in Python è usare la funzione input:
nome utente = input('Nome utente: ')
parola d'ordine = input('Parola d'ordine: ')
stampa('Entrando...')
Tuttavia, la funzione di immissione rende la password visibile come testo normale sullo schermo durante la digitazione. Per assicurarti che la password non venga visualizzata sullo schermo, dovresti invece utilizzare la funzione getpass:
da getpass importare getpass
nome utente = input('Nome utente: ')
password = getpass('Parola d'ordine:')
stampa('Entrando...')
Il modulo getpass fa parte della libreria standard di Python, quindi non è necessario installarlo.
6. Rendere leggibili i numeri grandi utilizzando i segnaposto di sottolineatura
Quando hai a che fare con numeri grandi nel tuo programma, possono essere molto difficili da leggere a colpo d'occhio. L'assegnazione di numeri errati alle variabili porta a un programma difettoso e individuare questo errore può essere molto difficile.
numero1 = 10000000000
numero2 = 100000000
totale = num1 + num2
stampa (totale)
È possibile riscrivere il codice precedente utilizzando i caratteri di sottolineatura per separare gruppi di migliaia, un modo comune per rendere più leggibili i numeri grandi.
numero1 = 10_000_000_000
numero2 = 100_000_000
totale = num1 + num2
stampa(F'{totale:,}')
La stringa f nella funzione print separa l'output utilizzando il separatore delle migliaia.
7. Utilizzo della funzione di aiuto per saperne di più su un modulo
La funzione di aiuto è molto importante in Python. Ti farà sapere come utilizzare un modulo che hai installato. Per usarlo, installa il modulo, quindi avvia l'interprete Python in un terminale e punta al percorso in cui hai installato il modulo. Importa il modulo e infine passa il nome del modulo alla funzione di aiuto.
Per scoprire quali metodi e attributi puoi usare, sostituisci la funzione help con la funzione dir.
La funzione dir restituisce i metodi e gli attributi che il modulo supporta non l'intera documentazione. Questo è utile quando vuoi dare un'occhiata a ciò che fa il modulo.
Scrivere codice Python più pulito
Python è un linguaggio molto vario. Come con qualsiasi altro linguaggio, nel tempo diventerai più bravo a scrivere codice Python più pulito.
Python ha molti moduli e funzioni integrati. In alcuni casi, puoi scrivere codice difficile da leggere perché non sei a conoscenza dell'esistenza di una determinata funzione. Per assicurarti di essere più informato, dovresti leggere più articoli su come scrivere codice migliore.