Migliori pratiche per le istruzioni condizionali in Python
Questo articolo spiega le migliori pratiche per le istruzioni condizionali in Python.
YouTube Video
Migliori pratiche per le istruzioni condizionali in Python
L'istruzione if in Python è una struttura fondamentale per implementare le diramazioni condizionali, e influisce notevolmente sulla leggibilità e sulla manutenzione del codice. Qui discuteremo in dettaglio le migliori pratiche per l'uso delle istruzioni if.
Usare espressioni condizionali esplicite
Scrivi le espressioni condizionali in modo conciso ed esplicito, evitando affermazioni ridondanti.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- In Python, puoi indicare che una condizione è vera scrivendo
if condition:.
Combinare più condizioni
Quando combini più condizioni, utilizza and o or. Tuttavia, quando le espressioni condizionali diventano complesse, la leggibilità può diminuire, quindi considera i seguenti aggiustamenti:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass- Dividendo le condizioni e assegnandole a variabili, si può migliorare la leggibilità.
and/or valutazione a cortocircuito
Nelle espressioni condizionali che utilizzano and o or, se il risultato può essere determinato solo dal valore a sinistra, si verifica una valutazione a cortocircuito e il lato destro non viene valutato. Comprendere questo ti aiuta a evitare elaborazioni non necessarie e a prevenire errori.
1user = None
2def expensive_check():
3 return True
4
5# Example of short-circuiting with 'and'
6if user and user.is_active:
7 # If user is None, user.is_active will NOT be evaluated
8 print("Active user found.")
9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12 # If user.is_admin is True, expensive_check will NOT be called.
13 print("Access granted.")
14else:
15 print("Access denied.")- Utilizzando la valutazione a cortocircuito, puoi migliorare l'efficienza e la sicurezza dell'elaborazione.
Precedenza di and e or
and ha una precedenza maggiore rispetto a or. Pertanto, combinando le condizioni in modo ingenuo, potresti ottenere risultati non desiderati. È importante utilizzare le parentesi per rendere chiare le tue intenzioni.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass- Utilizzando le parentesi, puoi chiarire la precedenza di
andeor, riducendo il rischio di bug inaspettati.
Comprendere Truthy e Falsy
In Python, i seguenti valori vengono valutati come False:.
NessunoFalso- Il numero
0(incluso0.0) - Tipi di sequenze vuote (come liste, tuple o stringhe vuote)
- Esempi:
[],(),""
- Esempi:
- Dizionario vuoto
- Esempio:
{}
- Esempio:
Sfruttare questo può aiutare a semplificare le tue espressioni condizionali.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passUso corretto di elif e else
Quando valuti più condizioni, utilizza elif. Utilizza else per definire un comportamento predefinito alla fine.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"elsenon è obbligatorio. Se tutte le condizioni sono coperte, può essere omesso.- Fai attenzione all'ordine delle espressioni condizionali e disponile in modo logico senza ridondanza.
Limita la profondità dell'annidamento.
Un annidamento profondo delle istruzioni if rende il codice più difficile da leggere.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()- Utilizzare ritorni anticipati può ridurre l'annidamento e rendere il codice più conciso.
Evita di utilizzare istruzioni if su una sola riga.
È possibile scrivere istruzioni if su una sola riga, ma ciò può ridurre la leggibilità.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()- L'uso di istruzioni if su una sola riga è accettabile solo per condizioni o azioni brevi, ma evita di scrivere codice eccessivamente prolisso.
Semplificazione con l'operatore ternario o or
Per rami condizionali semplici, utilizzare l'operatore ternario o or può rendere il tuo codice più conciso. Tuttavia, un uso eccessivo può rendere il codice più difficile da leggere, quindi andrebbero usati solo in condizioni semplici e intuitive.
1is_admin = True
2input_name = None
3
4# Regular if statement
5if is_admin:
6 role = "Administrator"
7else:
8 role = "User"
9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"- Per condizioni semplici, utilizzare l'operatore ternario o
orpuò rendere il codice più breve e facile da capire.
Memorizzare espressioni condizionali.
Le espressioni condizionali che coinvolgono calcoli onerosi o chiamate a funzioni possono essere memorizzate in variabili per migliorare le prestazioni.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 passRiepilogo
Le istruzioni if di Python sono strumenti semplici e potenti, ma un uso improprio può rendere il codice complesso e difficile da leggere. Adottando le migliori pratiche introdotte qui, è possibile migliorare la leggibilità, la manutenibilità e l'efficienza del codice.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.