Arbete med flaggor i Python
Flagga - är en speciell variabel,
som endast kan anta två värden:
True eller False. Med hjälp av
flaggor kan man lösa problem som kontrollerar
avsaknaden av något: till exempel kan man
kontrollera att det inte finns något element med
ett visst värde i listan.
Låt oss lösa följande problem: given en lista
med siffror, kontrollera om alla element
i den är positiva. För att göra detta
sätter vi en speciell variabel flag,
som kommer att vara sann före loopens start. Och
när ett negativt tal påträffas i loopen,
ändrar vi dess värde till False. För
att ta reda på resultatet av kontrollen,
skriver vi ut variabeln flag efter loopen
i konsolen:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # kommer att skriva ut True, eftersom alla tal är positiva
God praxis är att ge
variabeln för flaggan ett namn som återspeglar
det givna villkoret. Låt oss byta namn på flag
till isAllPositive. Och för tydlighetens skull
ändrar vi ett tal i listan till negativt:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # kommer att skriva ut False, eftersom det finns ett negativt tal
Om listan som genomsöks har många värden
och loopen behöver stoppas efter att det första
negativa talet upptäckts, bör
instruktionen break användas:
for el in lst:
if el < 0:
isAllPositive = False
break
När man arbetar med flaggor, för att ta reda på resultatet
av loopens exekvering, kan man skriva ut inte bara flaggans värde,
utan ett valfritt meddelande med hjälp av
ytterligare ett if.
Låt oss skriva om föregående exempel. Om
alla element är positiva, låt
'+++' skrivas ut, om inte -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # kommer att skriva ut '---'
Given en lista. Kontrollera att alla dess element är positiva tal.
Givet ett heltal. Kontrollera om det är ett primtal, det vill säga endast delbart med ett och sig självt.