Beste praksis for betingede uttalelser i Python
Denne artikkelen forklarer beste praksis for betingede uttalelser i Python.
YouTube Video
Beste praksis for betingede uttalelser i Python
if-setningen i Python er en grunnleggende konstruksjon for implementering av betinget forgrening, og den påvirker i stor grad lesbarhet og vedlikeholdbarhet av kode. Her skal vi diskutere i detalj beste praksis for bruk av if-setninger.
Bruk eksplisitte betingede uttrykk
Skriv betingelsesuttrykk konsist og tydelig, og unngå overflødige utsagn.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- I Python kan du indikere at en betingelse er sann ved å skrive
if condition:.
Kombinere flere betingelser
Når du kombinerer flere betingelser, bruk and eller or. Men når betingede uttrykk blir komplekse, kan lesbarheten reduseres, så vurder følgende justeringer:.
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- Ved å dele opp betingelser og tilordne dem til variabler, kan lesbarheten forbedres.
Snarveisevaluering med and/or
I betingede uttrykk med and eller or vil snarveisevaluering skje dersom resultatet kan bestemmes kun ut fra venstre verdi, og høyresiden blir da ikke evaluert. Å forstå dette hjelper deg å unngå unødvendig prosessering og forhindre feil.
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.")- Ved å bruke snarveisevaluering kan du forbedre både effektiviteten og sikkerheten i koden din.
Precedens for and og or
and har høyere precedens enn or. Derfor kan du få utilsiktede resultater hvis du kombinerer betingelser uten å tenke på dette. Det er viktig å bruke parenteser for å gjøre intensjonen din tydelig.
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- Ved å bruke parenteser kan du tydeliggjøre precedensen til
andogorog redusere risikoen for uventede feil.
Forstå Truthy og Falsy
I Python blir følgende verdier evaluert som False:.
IngenUsant- Tallet
0(inkludert0.0) - Tomme sekvenstyper (som tomme lister, tupler eller strenger)
- Eksempler:
[],(),""
- Eksempler:
- Tomt dictionary
- Eksempel:
{}
- Eksempel:
Å utnytte dette kan bidra til å forenkle dine betingede uttrykk.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passRiktig bruk av elif og else
Når du evaluerer flere betingelser, bruk elif. Bruk else for å definere en standardatferd på slutten.
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"elseer ikke obligatorisk. Hvis alle betingelser er dekket, kan det utelates.- Vær oppmerksom på rekkefølgen av betingelsesuttrykk og ordne dem logisk uten redundans.
Begrens dybden av neste nivåer.
Dyp nesting av if-setninger gjør koden vanskeligere å lese.
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()- Bruk av tidlige returverdier kan redusere nesting og gjøre koden mer konsis.
Unngå bruk av én-linjers if-setninger.
Det er mulig å skrive if-setninger på én linje, men dette kan redusere lesbarheten.
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()- Å bruke én-linjers if-setninger er akseptabelt kun for korte betingelser eller handlinger, men unngå å skrive altfor omstendelig kode.
Forenkle med ternæroperatør eller or
For enkle betingede grener kan bruk av ternæroperatør eller or gjøre koden din mer konsis. Overbruk av disse kan imidlertid gjøre koden vanskeligere å lese, og bør derfor bare brukes for enkle og intuitive betingelser.
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"- For enkle betingelser kan bruk av ternæroperatør eller
orgjøre koden din kortere og lettere å forstå.
Bufring av betingelsesuttrykk.
Betingelsesuttrykk som involverer kostbare beregninger eller funksjonsanrop kan bufres i variabler for å forbedre ytelsen.
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 passSammendrag
Pythons if-setninger er enkle og kraftige verktøy, men feil bruk kan gjøre koden kompleks og vanskelig å lese. Ved å ta i bruk de beste praksisene som er introdusert her, kan du forbedre lesbarheten, vedlikeholdbarheten og effektiviteten til koden din.
Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.