Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗pyPmLpFl 162 of 208 menu

Работа з флагікамі ў Python

Флагік - гэта спецыяльная зменная, якая можа прымаць толькі два значэнні: True або False. З дапамогай флагікаў можна вырашаць задачы, якія правяраюць адсутнасць чагосьці: напрыклад, можна праверыць, што ў спісе няма элемента з пэўным значэннем.

Давайце вырасім наступную задачу: дадзены спіс з лікамі, трэба праверыць, ці ўсе элементы ў ім з'яўляюцца дадатнымі. Для гэтага зададзім спецыяльную зменную flag, якая да пачатку цыклу будзе ісціна. А пры трапленні ў цыкл адмоўнага ліку, змянім ёй значэнне на False. Для таго, каб даведацца вынік праверкі, вывядзем зменную flag пасля цыклу ў кансоль:

lst = [1, 2, 3, 4, 5] flag = True for el in lst: if el < 0: flag = False print(flag) # выведзе True, паколькі ўсе лікі дадатныя

Добрай практыкай з'яўляецца прызначэнне для зменнай з флагікам імя, якое адлюстроўвае зададзеную ўмову. Давайце пераназовам flag у isAllPositive. І для нагляднасці змянім адзін лік са спісу на адмоўны:

lst = [1, 2, 3, -4, 5] isAllPositive = True for el in lst: if el < 0: isAllPositive = False print(isAllPositive) # выведзе False, паколькі ёсць адмоўны лік

Калі ў перабіраемым спісе шмат значэнняў і трэба спыніць цыкл пасля выяўлення першага адмоўнага ліку, то варта ўжыць інструкцыю break:

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

Пры работе з флагікамі, каб даведацца вынік выканання цыклу, можна вывесці не значэнне флагіка, а адвольнае паведамленне з дапамогай дадатковага if.

Давайце перапішам папярэдні прыклад. Калі ўсе элементы дадатныя, то хай вывядзецца '+++', калі не - '---':

for el in lst: if el < 0: isAllPositive = False break if isAllPositive: print('+++') else: print('---') # выведзе '---'

Дадзены спіс. Праверце, што ўсе яго элементы з'яўляюцца дадатнымі лікамі.

Дадзены цэлы лік. Праверце, ці з'яўляецца ён простым, гэта значыць дзеліцца толькі на адзінку і на само́га сябе.

byenru