Arbeid med flagg i Python
Flagg - er en spesiell variabel,
som bare kan ha to verdier:
True eller False. Med
flagg kan man løse oppgaver som kontrollerer
fraværet av noe: for eksempel kan man
sjekke at det ikke er noe element i
en liste med en bestemt verdi.
La oss løse følgende oppgave: gitt en liste
med tall, sjekk om alle elementene
i den er positive. For å gjøre dette
sett en spesiell variabel flag,
som vil være sann før løkken starter. Og
når et negativt tall kommer inn i løkken,
endre verdien til False. For
å finne ut resultatet av sjekken,
skriv ut variabelen flag etter løkken
i konsollen:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # vil skrive ut True, siden alle tallene er positive
God praksis er å gi
flaggvariabelen et navn som reflekterer
den gitte betingelsen. La oss omdøpe flag
til isAllPositive. Og for klarhet
endre ett tall i listen til negativt:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # vil skrive ut False, siden det er et negativt tall
Hvis listen som gjennomgås har mange verdier
og det er nødvendig å stoppe løkken etter å ha oppdaget
det første negative tallet, bør man
bruke setningen break:
for el in lst:
if el < 0:
isAllPositive = False
break
Når man arbeider med flagg, for å finne ut resultatet
av løkken, kan man skrive ut ikke bare verdien
av flagget, men en vilkårlig melding ved hjelp av
en ekstra if.
La oss omskrive forrige eksempel. Hvis
alle elementene er positive, la
den skrive ut '+++', hvis ikke -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # vil skrive ut '---'
Gitt en liste. Sjekk at alle dens elementer er positive tall.
Gitt et heltall. Sjekk om det er et primtall, det vil si delelig kun på én og på seg selv.