Bästa praxis för villkorssatser i Python

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 and och or och minska risken för oväntade buggar.

Förstå Truthy och Falsy

I Python utvärderas följande värden som False:.

  • Ingen
  • Falskt
  • Numret 0 (inklusive 0.0)
  • Tomma sekvenstyper (såsom tomma listor, tupler eller strängar)
    • Exempel: [], (), ""
  • Tom ordbok
    • 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    pass

Korrekt 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 or gö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    pass

Sammanfattning

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.

YouTube Video