Práca s flagmi v Pythone

Flag - je špeciálna premenná, ktorá môže nadobúdať iba dve hodnoty: True alebo False. Pomocou flagov je možné riešiť úlohy, ktoré overujú neexistenciu niečoho: napríklad je možné skontrolovať, že v zozname nie je žiadny prvok s určitou hodnotou.

Poďme vyriešiť nasledujúcu úlohu: daný je zoznam s číslami, je potrebné skontrolovať, či sú všetky prvky v ňom kladné. Na to nastavíme špeciálnu premennú flag, ktorá bude pred začatím cyklu pravdivá. A pri nájdení záporného čísla v cykle zmeníme jej hodnotu na False. Aby sme zistili výsledok kontroly, vypíšeme premennú flag po cykle do konzoly:

pythonlst = [1, 2, 3, 4, 5]
flag = True

for el in lst:
  if el < 0:
    flag = False
    
print(flag) # vypíše True, pretože všetky čísla sú kladné

Dobrou praxou je pomenovať premennú s flagom menom, ktoré odráža danú podmienku. Premenujme flag na isAllPositive. A pre názornosť zmeňme jedno číslo v zozname na záporné:

pythonlst = [1, 2, 3, -4, 5]
isAllPositive = True

for el in lst:
  if el < 0:
    isAllPositive = False
    
print(isAllPositive) # vypíše False, pretože existuje záporné číslo

Ak v prechádzanom zozname je veľa hodnôt a je potrebné zastaviť cyklus po zistení prvého záporného čísla, treba použiť inštrukciu break:

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

Pri práci s flagmi, aby sme zistili výsledok vykonania cyklu, je možné vypísať nielen hodnotu flagu, ale aj ľubovoľnú správu pomocou dodatočného if.

Prepíšme predchádzajúci príklad. Ak sú všetky prvky kladné, nech sa vypíše '+++', ak nie - '---':

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

if isAllPositive:
  print('+++')
else:
  print('---') # vypíše '---'
Задание 1

Daný je zoznam. Skontrolujte, či sú všetky jeho prvky kladné čísla.

Задание 2

Dané je celé číslo. Skontrolujte, či je prvočíslom, to znamená, že je deliteľné iba jednotkou a sebou samým.