Beste praktijken voor voorwaardelijke uitspraken in Python

Beste praktijken voor voorwaardelijke uitspraken in Python

Dit artikel legt de beste praktijken voor voorwaardelijke uitspraken in Python uit.

YouTube Video

Beste praktijken voor voorwaardelijke uitspraken in Python

De if-verklaring in Python is een fundamentele structuur voor het implementeren van voorwaardelijke vertakkingen en heeft grote invloed op de leesbaarheid en onderhoudbaarheid van code. Hier zullen we in detail de beste praktijken voor het gebruik van if-verklaringen bespreken.

Gebruik expliciete voorwaardelijke uitdrukkingen

Conditionele uitdrukkingen beknopt en expliciet schrijven, vermijden van overbodige verklaringen.

1condition = True
2
3### Bad Example
4if condition == True:
5    pass
6
7### Good Example
8if condition:
9    pass
  • In Python kun je aangeven dat een conditie waar is door te schrijven if conditie:.

Meerdere voorwaarden combineren

Gebruik and of or bij het combineren van meerdere voorwaarden. Wanneer voorwaardelijke uitdrukkingen complex worden, kan de leesbaarheid echter afnemen. Overweeg daarom de volgende aanpassingen:.

 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
  • Door voorwaarden op te splitsen en toe te wijzen aan variabelen, kan de leesbaarheid worden verbeterd.

and/or kortsluitingsevaluatie

In conditionele expressies met and of or, als het resultaat alleen door de linkerwaarde kan worden bepaald, vindt kortsluitingsevaluatie plaats en wordt de rechterzijde niet geëvalueerd. Dit begrijpen helpt je om onnodige verwerking te vermijden en fouten te voorkomen.

 1# Example of short-circuiting with 'and'
 2user = None
 3if user and user.is_active:
 4    # If user is None, user.is_active will NOT be evaluated
 5    print("Active user found.")
 6
 7# Example of short-circuiting with 'or'
 8if user.is_admin or expensive_check(user):
 9    # If user.is_admin is True, expensive_check will NOT be called.
10    print("Access granted.")
11else:
12    print("Access denied.")
  • Door gebruik te maken van kortsluitingsevaluatie kun je de verwerkingssnelheid en de veiligheid verbeteren.

Prioriteit van and en or

and heeft een hogere prioriteit dan or. Daarom kun je, als je voorwaarden ondoordacht combineert, onverwachte resultaten krijgen. Het is belangrijk om haakjes te gebruiken om je bedoelingen duidelijk te maken.

 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
  • Door haakjes te gebruiken kun je de prioriteit van and en or verduidelijken, waardoor het risico op onverwachte bugs afneemt.

Begrijp Truthy en Falsy

In Python worden de volgende waarden geëvalueerd als False:.

  • Geen
  • Onwaar
  • Het getal 0 (inclusief 0.0)
  • Lege sequentietypen (zoals lege lijsten, tuples of strings)
    • Voorbeelden: [], (), ""
  • Lege dictionary
    • Voorbeeld: {}

Dit benutten kan helpen om je voorwaardelijke uitdrukkingen te vereenvoudigen.

1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5    pass
6
7### Good Example
8if items:
9    pass

Correct gebruik van elif en else

Gebruik elif bij het evalueren van meerdere voorwaarden. Gebruik else om standaardgedrag aan het einde te definiëren.

 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"

Opmerking:

  • else is niet verplicht. Als alle voorwaarden worden gedekt, kan het worden weggelaten.
  • Let op de volgorde van de voorwaardelijke expressies en organiseer ze logisch zonder overbodigheden.

Beperk de diepte van geneste structuur.

Diepe geneste if-structuren maken de code moeilijker te lezen. Vergelijk de volgende voorbeelden.

 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()
  • Het gebruik van vroege returns kan geneste structuren verminderen en de code conciezer maken.

Vermijd het gebruik van enkelregelige if-structuren.

Het is mogelijk om te schrijven als verklaringen in een enkele regel, maar dit kan de leesbaarheid verminderen.

 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()
  • Single-line gebruiken als verklaringen alleen aanvaardbaar zijn voor korte voorwaarden of acties, maar te veel verbose code vermijden.

Vereenvoudigen met de ternary-operator of or

Voor eenvoudige conditionele vertakkingen kan het gebruik van de ternary-operator of or je code compacter maken. Het overmatig gebruik hiervan kan je code echter moeilijk leesbaar maken, dus gebruik ze alleen voor eenvoudige en intuïtieve voorwaarden.

 1is_admin = True
 2
 3# Regular if statement
 4if is_admin:
 5    role = "Administrator"
 6else:
 7    role = "User"
 8
 9# Simplified using an inline if
10role = "Administrator" if is_admin else "User"
11
12# Use 'or' to provide a default value
13name = input_name or "Guest"
  • Voor eenvoudige voorwaarden kan het gebruik van de ternary-operator of or je code korter en begrijpelijker maken.

Voorwaardelijke expressies cachen.

Voorwaardelijke expressies die dure berekeningen of functie-aanroepen bevatten, kunnen worden gecachet in variabelen om de prestaties te verbeteren.

 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

Samenvatting

De if-structuren van Python zijn eenvoudige en krachtige hulpmiddelen, maar onjuist gebruik kan de code complex en moeilijk leesbaar maken. Door de hier geïntroduceerde beste praktijken toe te passen, kunt u de leesbaarheid, onderhoudbaarheid en efficiëntie van uw code verbeteren.

Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.

YouTube Video