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:

pythonlst = [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:

pythonlst = [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:

pythonfor 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 - '---':

pythonfor el in lst:
  if el < 0:
    isAllPositive = False
    break

if isAllPositive:
  print('+++')
else:
  print('---') # kommer att skriva ut '---'
Задание 1

Given en lista. Kontrollera att alla dess element är positiva tal.

Задание 2

Givet ett heltal. Kontrollera om det är ett primtal, det vill säga endast delbart med ett och sig självt.