Lippujen käsittely Pythonissa
Lippu on erityinen muuttuja,
joka voi saada vain kaksi arvoa:
True tai False.
Lippuja käyttämällä voidaan ratkaista
tehtäviä, jotka tarkistavat jonkin
puuttumisen: esimerkiksi voidaan
tarkistaa, että listassa ei ole
elementtiä tietyllä arvolla.
Ratkaistaan seuraava tehtävä: annettu lista
numeroita, onko tarkistettava, ovatko kaikki
sen elementit positiivisia. Tätä varten
asetetaan erityinen muuttuja flag,
joka on tosi ennen silmukan alkamista.
Kun silmukassa kohdataan negatiivinen luku,
muutetaan sen arvoksi False.
Saadaksemme selville tarkistuksen tuloksen,
tulostamme muuttujan flag konsoliin
silmukan jälkeen:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # tulostaa True, koska kaikki luvut ovat positiivisia
Hyvää käytäntöä on antaa lipun muuttujalle
nimi, joka heijastaa asetettua ehtoa.
Nimetään flag uudelleen
muotoon isAllPositive. Ja selkeyden vuoksi
muutetaan yksi listan luvuista negatiiviseksi:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # tulostaa False, koska on negatiivinen luku
Jos listassa, jota käydään läpi, on paljon arvoja
ja silmukka on pysäytettävä ensimmäisen
negatiivisen luvun löytymisen jälkeen, tulee
käyttää break -komentoa:
for el in lst:
if el < 0:
isAllPositive = False
break
Lippuja käytettäessä voidaan silmukan
suorituksen tuloksen selvittämiseksi
tulostaa mielivaltainen viesti käyttämällä
lisä if -lausetta lipun arvon sijaan.
Kirjoitetaan edellinen esimerkki uudelleen. Jos
kaikki elementit ovat positiivisia, tulostuu
'+++', jos ei -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # tulostaa '---'
Annettu lista. Tarkista, että kaikki sen elementit ovat positiivisia numeroita.
Annettu kokonaisluku. Tarkista, onko se alkuluku, eli jaollinen vain ykkösellä ja itsellään.