Kufanya Kazi na Bendera katika Python
Bendera - ni tofauti maalum,
ambayo inaweza kuchukua thamani mbili tu:
True au False. Kwa kutumia
bendera unaweza kutatua matatizo yanayohitaji
kukagua kutokuwepo kwa kitu: kwa mfano, unaweza
kukagua kuwa kwenye orodha hakuna kipengele chenye
thamani maalum.
Wacha tutatue tatizo lifuatalo: imetolewa orodha
ya nambari, inahitajik kukagua ikiwa vipengele vyote
ndani yake ni chanya. Kwa hiayo tunaweka tofauti maalum flag,
ambayo itakuwa kweli kabla ya kuanza kitanzi. Na
mara tu kitanzi kikipata nambari hasi,
tunabadilisha thamani yake kuwa False. Ili
kujua matokeo ya ukaguzi,
tunatoa tofauti flag baada ya kitanzi
kwenye koni:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # itatoa True, kwa sababu nambari zote ni chanya
Desturi nzuri ni kumpa tofauti ya bendera
jina linaloakisi sharti lililowekwa. Wacha tubadilishe jina flag
kuwa isAllPositive. Na kwa uwazi zaidi
tubadilishe nambari moja kwenye orodha kuwa hasi:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # itatoa False, kwa sababu kuna nambari hasi
Ikiwa kwenye orodha inayopitwa kuna thamani nyingi
na inahitajika kusitisha kitanzi baada ya kugundua
nambari hasi ya kwanza, basi inapaswa
kutumia agizo break:
for el in lst:
if el < 0:
isAllPositive = False
break
Wakati wa kufanya kazi na bendera, ili kujua matokeo
ya utekelezaji wa kitanzi, unaweza kuonyesha sio thamani
ya bendera, bali ujumbe wowote kwa kutumia
if ya ziada.
Wacha tuandike tena mfano uliopita. Ikiwa
vipengele vyote ni chanya, basi wacha
ionekane '+++', ikiwa sivyo -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # itatoa '---'
Imetolewa orodha. Kagua ikiwa vipengele vyake vyote ni nambari chanya.
Imetolewa nambari kamili. Kagua ikiwa ni tasa, yaani inagawanyika tu kwa moja na kwa yenyewe.