Bästa praxis för villkorssatser i Python
Den här artikeln förklarar bästa praxis för villkorssatser i Python.
YouTube Video
Bästa praxis för villkorssatser i Python
if-satsen i Python är en grundläggande konstruktion för att implementera villkorlig förgrening, och den påverkar kodens läsbarhet och underhållbarhet avsevärt. Här kommer vi att diskutera i detalj bästa praxis för att använda if-satser.
Använd tydliga villkorsuttryck
Skriv villkorsuttryck koncist och tydligt, och undvik överflödiga satser.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- I Python kan du ange att ett villkor är sant genom att skriva
if condition:.
Kombinera flera villkor
När du kombinerar flera villkor, använd and eller or. När villkorsuttryck blir komplexa kan dock läsbarheten minska, så överväg följande justeringar:.
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- Genom att dela upp villkor och tilldela dem till variabler kan läsbarheten förbättras.
Kortslutningsutvärdering av and/or
I villkorsuttryck som använder and eller or, om resultatet kan avgöras enbart av det vänstra värdet, sker en kortslutningsutvärdering och den högra sidan utvärderas inte. Att förstå detta hjälper dig att undvika onödig bearbetning och förhindra fel.
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.")- Genom att använda kortslutningsutvärdering kan du förbättra bearbetningseffektivitet och säkerhet.
Prioritet för and och or
and har högre prioritet än or. Därför kan du få oavsiktliga resultat om du kombinerar villkor utan att tänka efter. Det är viktigt att använda parenteser för att tydliggöra din avsikt.
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- Genom att använda parenteser kan du förtydliga prioriteten för
andochoroch minska risken för oväntade buggar.
Förstå Truthy och Falsy
I Python utvärderas följande värden som False:.
IngenFalskt- Numret
0(inklusive0.0) - Tomma sekvenstyper (såsom tomma listor, tupler eller strängar)
- Exempel:
[],(),""
- Exempel:
- Tom ordbok
- Exempel:
{}
- Exempel:
Att använda detta kan hjälpa till att förenkla dina villkorsuttryck.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passKorrekt användning av elif och else
När du utvärderar flera villkor, använd elif. Använd else för att definiera ett standardbeteende i slutet.
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"elseär inte obligatoriskt. Om alla villkor täcks in, kan det utelämnas.- Var uppmärksam på ordningen av villkorssatser och arrangera dem logiskt utan överflöd.
Begränsa djupet av nästling.
Djup nästling av if-satser gör koden svårare att läsa.
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()- Att använda tidiga returvärden kan minska nästlingen och göra koden mer koncis.
Undvik att använda if-satser på en enda rad.
Det går att skriva if-satser på en enda rad, men det kan försämra läsbarheten.
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()- Att använda enkelradiga if-satser är acceptabelt endast för korta villkor eller åtgärder, men undvik att skriva alltför omständlig kod.
Förenkling med det ternära operatorn eller or
För enkla villkorssatser kan användning av det ternära operatorn eller or göra din kod mer koncis. Dock kan överanvändning göra koden mindre läsbar, så de bör endast användas för enkla och intuitiva villkor.
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"- För enkla villkor kan användning av det ternära operatorn eller
orgöra din kod kortare och lättare att förstå.
Cacha villkorssatser.
Villkorssatser som involverar kostsamma beräkningar eller funktionsanrop kan cachas i variabler för att förbättra prestandan.
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 passSammanfattning
Pythons if-satser är enkla och kraftfulla verktyg, men felaktig användning kan göra koden komplex och svårläst. Genom att anta de bästa metoderna som introduceras här kan du förbättra läsbarheten, underhållbarheten och effektiviteten i din kod.
Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.