Zászlók kezelése Pythonban
Zászló - ez egy speciális változó,
ami csak két értéket vehet fel:
True vagy False. A
zászlók segítségével olyan feladatokat oldhatunk meg,
amelyek valaminek a hiányát ellenőrzik:
például ellenőrizhetjük, hogy egy listában
nincs-e egy adott értékű elem.
Oldjuk meg a következő feladatot: adott egy lista
számokkal, ellenőrizni kell, hogy minden elem
pozitív-e. Ehhez állítsunk be egy speciális flag változót,
ami a ciklus előtt igaz lesz. És
ha a ciklusban negatív számba botlunk,
akkor változtassuk meg az értékét False-ra.
Ahhoz, hogy megismerjük az ellenőrzés eredményét,
írjuk ki a flag változót a ciklus után
a konzolra:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # True-ot ír ki, mivel minden szám pozitív
Jó gyakorlat a zászló változónak olyan nevet adni,
ami tükrözi a feltételt. Nevezzük át a flag-et
isAllPositive-ra. És az áttekinthetőség érdekében
változtassuk meg a lista egyik számát negatívra:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # False-ot ír ki, mivel van negatív szám
Ha a bejárandó listában sok érték van
és meg kell állítani a ciklust az első negatív szám észlelése után,
akkor a break utasítást kell használni:
for el in lst:
if el < 0:
isAllPositive = False
break
Zászlók használatakor a ciklus végrehajtásának eredményének megismeréséhez
nem a zászló értékét írhatjuk ki, hanem egy tetszőleges üzenetet egy
további if segítségével.
Írjuk át az előző példát. Ha
minden elem pozitív, akkor
'+++' jelenjen meg, ha nem -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # '---'-t ír ki
Adott egy lista. Ellenőrizze, hogy minden eleme pozitív szám-e.
Adott egy egész szám. Ellenőrizze, hogy prím-e, azaz csak eggyel és önmagával osztható.