Werken met vlaggen in Python
Een vlag is een speciale variabele
die slechts twee waarden kan aannemen:
True of False. Met behulp van
vlaggen kunnen problemen worden opgelost die
controleren op de afwezigheid van iets: bijvoorbeeld,
je kunt controleren of een lijst geen element
met een bepaalde waarde bevat.
Laten we het volgende probleem oplossen: gegeven een lijst
met getallen, controleer of alle elementen
erin positief zijn. Hiervoor stellen we een
speciale variabele flag in,
die vóór de start van de lus waar zal zijn. En
wanneer een negatief getal in de lus wordt aangetroffen,
veranderen we de waarde naar False. Om
het resultaat van de controle te weten,
geven we de variabele flag na de lus
weer in de console:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # geeft True weer, omdat alle getallen positief zijn
Een goede gewoonte is om de
vlagvariabele een naam te geven die
de gestelde voorwaarde weerspiegelt. Laten we flag
hernoemen naar isAllPositive. En voor de duidelijkheid
veranderen we één getal in de lijst in een negatief getal:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # geeft False weer, omdat er een negatief getal is
Als de doorlopen lijst veel waarden bevat
en de lus moet worden gestopt na het detecteren van
het eerste negatieve getal, dan moet
de instructie break worden gebruikt:
for el in lst:
if el < 0:
isAllPositive = False
break
Bij het werken met vlaggen, om het resultaat
van de lusuitvoering te weten, kun je niet de waarde
van de vlag weergeven, maar een willekeurig bericht met behulp van
een aanvullende if.
Laten we het vorige voorbeeld herschrijven. Als
alle elementen positief zijn, laat dan
'+++' worden weergegeven, zo niet -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # geeft '---' weer
Gegeven een lijst. Controleer of alle elementen positieve getallen zijn.
Gegeven een geheel getal. Controleer of het een priemgetal is, dat wil zeggen, alleen deelbaar door één en door zichzelf.