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:
lst = [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é:
lst = [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:
for 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 -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # vypíše '---'
Daný je zoznam. Skontrolujte, či sú všetky jeho prvky kladné čísla.
Dané je celé číslo. Skontrolujte, či je prvočíslom, to znamená, že je deliteľné iba jednotkou a sebou samým.