Beste praksis for betingede uttalelser i Python

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 and og or og redusere risikoen for uventede feil.

Forstå Truthy og Falsy

I Python blir følgende verdier evaluert som False:.

  • Ingen
  • Usant
  • Tallet 0 (inkludert 0.0)
  • Tomme sekvenstyper (som tomme lister, tupler eller strenger)
    • Eksempler: [], (), ""
  • Tomt dictionary
    • 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    pass

Riktig 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"
  • else er 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 or gjø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    pass

Sammendrag

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.

YouTube Video