Arbejde med flag i Python
Flag - er en speciel variabel,
som kun kan have to værdier:
True eller False. Med
flag kan man løse opgaver, der kontrollerer
fraværet af noget: for eksempel kan man
kontrollere, at der ikke er noget element med
en bestemt værdi i listen.
Lad os løse følgende opgave: givet en liste
med tal, skal du kontrollere, om alle elementer
i den er positive. For at gøre dette
indstiller vi en speciel variabel flag,
som vil være sand før loopet starter. Og
når der kommer et negativt tal i loopet,
ændrer vi dens værdi til False. For
at finde ud af resultatet af kontrollen,
udskriver vi variablen flag efter loopet
i konsollen:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # vil udskrive True, da alle tal er positive
God praksis er at give
variablen med flaget et navn, der afspejler
den givne betingelse. Lad os omdøbe flag
til isAllPositive. Og for klarhedens skyld
ændrer vi et tal i listen til et negativt:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # vil udskrive False, da der er et negativt tal
Hvis der er mange værdier
i den gennemgåede liste
og det er nødvendigt at stoppe loopet efter opdagelsen af
det første negative tal, bør man
anvende instruktionen break:
for el in lst:
if el < 0:
isAllPositive = False
break
Ved arbejde med flag, for at finde ud af resultatet
af loopets udførelse, kan man udskrive ikke værdien
af flaget, men en vilkårlig besked ved hjælp af
en ekstra if.
Lad os omskrive det forrige eksempel. Hvis
alle elementer er positive, lad
der udskrives '+++', hvis ikke -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # vil udskrive '---'
Givet en liste. Kontroller, at alle dens elementer er positive tal.
Givet et heltal. Kontroller, om det er et primtal, det vil sige, det er kun deleligt med en og med sig selv.