Bedste praksis for betingede udsagn i Python

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 and og or og reducere risikoen for uventede fejl.

Forstå Truthy og Falsy

I Python vurderes følgende værdier som False:.

  • Ingen
  • Falsk
  • Tallet 0 (inklusive 0.0)
  • Tom sekvenstype (såsom tomme lister, tuples eller strenge)
    • Eksempler: [], (), ""
  • Tomt dictionary
    • 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    pass

Korrekt 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"
  • Else er 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 or gø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    pass

Sammendrag

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.

YouTube Video