Bedste praksis for betingede udsagn i Python
Denne artikel forklarer de bedste praksis for betingede udsagn i Python.
YouTube Video
Bedste praksis for betingede udsagn i Python
If-udsagnet i Python er en grundlæggende konstruktion til at implementere betinget forgrening, og det har stor indflydelse på kode-læselighed og vedligeholdelse. Her vil vi i detaljer diskutere bedste praksis for brug af if-udsagn.
Brug tydelige betingede udtryk
Skriv betingede udtryk kort og tydeligt, og undgå overflødige udsagn.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- I Python kan du angive, at en betingelse er sand ved at skrive
if condition:.
Kombination af flere betingelser
Når du kombinerer flere betingelser, skal du bruge and eller or. Men når betingede udtryk bliver komplekse, kan læseligheden falde, så overvej 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 at opdele betingelser og tildele dem til variabler kan læseligheden forbedres.
and/or kortslutningsvurdering
I betingede udtryk med and eller or, hvis resultatet kan bestemmes af kun venstre side, udføres en kortslutningsvurdering og højre side evalueres ikke. Forståelse af dette hjælper dig med at undgå unødvendig behandling og forhindre fejl.
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 at bruge kortslutningsvurdering kan du forbedre behandlingseffektiviteten og sikkerheden.
Prioritet af and og or
and har højere prioritet end or. Derfor kan du få utilsigtede resultater, hvis du kombinerer betingelser uden omtanke. Det er vigtigt at bruge parenteser for at gøre dine intentioner tydelige.
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 at bruge parenteser kan du tydeliggøre prioriteten af
andogorog reducere risikoen for uventede fejl.
Forstå Truthy og Falsy
I Python vurderes følgende værdier som False:.
IngenFalsk- Tallet
0(inklusive0.0) - Tom sekvenstype (såsom tomme lister, tuples eller strenge)
- Eksempler:
[],(),""
- Eksempler:
- Tomt dictionary
- Eksempel:
{}
- Eksempel:
Udnyttelse af dette kan hjælpe med at forenkle dine betingede udtryk.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passKorrekt brug af elif og else
Når du evaluerer flere betingelser, skal du bruge elif. Brug else til at definere en standardadfærd til sidst.
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 dækket, kan det udelades.- Vær opmærksom på rækkefølgen af betingede udtryk, og arranger dem logisk uden redundans.
Begræns graden af indlejring.
Dyb indlejring af if-udsagn gør koden sværere at læse.
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()- Brug af tidlige returneringer kan reducere indlejring og gøre koden mere kortfattet.
Undgå at bruge enkeltlinje-if-udsagn.
Det er muligt at skrive if-sætninger på en enkelt linje, men det kan mindske læsbarheden.
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()- Brug af enkeltlinje-if-sætninger er kun acceptabelt for korte betingelser eller handlinger, men undgå at skrive alt for omfattende kode.
Forenkling med den ternære operator eller or
For simple betingede grene kan brug af den ternære operator eller or gøre din kode mere kortfattet. Dog kan overforbrug af disse gøre din kode sværere at læse, så de bør kun bruges til simple 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 simple betingelser kan brug af den ternære operator eller
orgøre din kode kortere og lettere at forstå.
Caching af betingede udtryk.
Betingede udtryk, der involverer ressourcekrævende beregninger eller funktionkald, kan caches i variabler for at forbedre ydeevnen.
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-udsagn er simple og kraftfulde værktøjer, men forkert brug kan gøre koden kompleks og svær at læse. Ved at anvende de bedste praksisser, der introduceres her, kan du forbedre læsbarheden, vedligeholdelsen og effektiviteten af din kode.
Du kan følge med i ovenstående artikel ved hjælp af Visual Studio Code på vores YouTube-kanal. Husk også at tjekke YouTube-kanalen.