Võrdlustehted ja loogikatehted
Loogikaavaldised ja nende väärtused
editLoogikaavaldistel võib olla tulemuseks kaks võimalikku väärtust:
tõene true 1 väär false 0
Pythonil on konstandid True ja False tõese ja väära väärtuse tähistamiseks. NB! Need kirjutatakse suure tähega!
Avaldiste näited:
3<5 on tõene 3>5 on väär
Loogikaavaldised võivad koosneda:
- aritmeetika- või stringavaldistest (mis esindavad väärtust)
- võrdlusoperaatoritest ehk võrdlusmärkidest
< <= > >= == !=
- loogikatehte märkidest (
and or not
)
Loogikatehted:
- and
- konjunktsioon ehk loogiline ja, st tehte tulemus on tõene vaid siis, kui mõlemad operandid on tõesed
- or
- disjunktsioon ehk loogiline või, st tehte tulemus on tõene, kui vähemalt üks operandidest on tõene
- not
- loogiline ei, st tõene väärtus muudetakse vääraks ja vastupidi
Erinevate andmetüüpide võrdlemine
editVõrrelda saab nii arve kui ka stringe. Järgnevusseost (ehk suhteid suurem/väiksem) lubab Python 3.x määrata vaid sama tüüpi andmetele. Seega me võime küsida, kas 3 < 2
või "kass" > "koer"
. Kuid mitte nii: 2 > "kass"
. See on ka täiesti mõistlik. Tekstide puhul on võrdlemise aluseks kooditabelis peituvad tähtede ja teiste märkide koodid. Teatud mööndusega võib väita, et stringide puhul vastab järjestus tähestikule – see mis tähestikus eespool, on väiksem, see tähendab, et tõesed on väited "elevant" < "sääsk"
ja "koer" > "kass“
ning ka "11" < "3"
Märkidega ==
ja !=
võib Pythonis võrrelda ka erinevat tüüpi andmeid (2 != "kass"
). Iseküsimus, millist infot see annab.
Loogikatehetel on operandideks reeglina tõeväärtustüüpi väärtused (tõene või väär, True või False). Python-keeles (ja mõnes teises ka) on olukord keerulisem – kõiki arve, mis ei võrdu nulliga, tõlgendatakse kui väärtust True.
Kõige turvalisem (vähemalt seni, kuni sa väga täpselt ei tea, mida teed) on siiski kasutada loogikatehetega koos tõeväärtustüüpi operande ja sel viisil on programm ka reeglina inimesele paremini loetav.
Tehete järjekord määratakse järgmiselt: kõigepealt täidetakse võrdlustehted vasakult paremale; nende tehete tulemuseks on alati loogikaväärtused. Nüüd saab loogikaväärtustele rakendada loogikatehteid. Ikka vasakult paremale.
Loogikaavaldistest tekkivaid tõeväärtusi on vaja kasutada näiteks valiku- ja tsüklilausetes.
Näited loogikaavaldistest
editTüüpiliselt selleks, et määrata muutuja väärtuse kuulumist mingisse vahemikku tehakse nii
# A on suurem 0-st ja väiksem või võrdne 10-ga (A on 1 ja 10 vahel): A > 0 and A <= 10
Eelmise avaldisega on samaväärne Pythonis:
0 < A <= 10
Kuna aga sellist avaldise kuju valdav enamus keeli ei toeta, siis on targem seda vältida ja õppida selgeks just esimene variant. Järgmine näide on or'i
kasutamisest
# A on 0-st väiksem või 10-st suurem: A < 0 or A > 10
Tõeväärtustabelid
editLoogikatehete väärtused on esitatud järgmistes tõeväärtustabelites:
Loogikatehe and
and | true | false |
true | true | false |
false | false | false |
Loogikatehe or
or | true | false |
true | true | true |
false | true | false |
Loogikatehe not
not | |
true | false |
false | true |
Näited tõeväärtuse leidmisest
editAvaldis on järgmine:
A<0 or A>10
Andes A-le väärtuseks 5, saame järgmise lause:
5<0 or 5>10 5<0 - false; 5>10 – false false or false on vastavalt tõeväärtustabelile false
Andes A-le väärtuseks 12, saame järgmise lause:
12<0 or 12>10 12<0 - false; 12>10 – true false or true on vastavalt tõeväärtustabelile true
Kokkuvõte loogikamuutujatest ja -tehetest
edit- loogikatehetel ja -muutujatel on vaid kaks võimalikku väärtust: True ja False
- võrdlustes kasutatavate operandide andmetüübid peavad kokku sobima
- ole ettevaatlik ujukomaarvude võrdlemisel eriti == - ga - seda viimast ei tohiks teha
- kasuta täiendavaid sulge, et muuta avaldis paremini loetavaks
- ära unusta tõeväärtustabeleid