Pythoni lisavõimalused

Tingimusavaldis

Lisaks if-lausele on Pythonis olemas ka if-avaldis e tingimusavaldis. Selle olemust on kõige lihtsam selgitada näitega:

>>> a = 1
>>> b = 2
>>> 'suurem' if a > b else 'väiksem'
'väiksem'

Ka if-avaldise juures kasutatakse võtmesõnu if ja else, aga nende paigutus on erinev – tõesele tingumusele vastav haru kirjutatakse if-i ette ja väärale tingimusele vastav haru kirjutatakse else järele, koolonit ega treppimist ei kasutata. Oluline on veel see, et erinevalt tingimuslausest ei käi tingimusavaldise harudesse mitte laused, vaid avaldised. Tingimusavaldise väärtus võetakse ühest või teisest harust, vastavalt tingimusele. See asjaolu tingib ka selle, et mõlemad harud peavad olema antud.

Toome siinkohal veel ühe näite tingimusavaldise kasutamise kohta:

def neto(bruto):
    return bruto if bruto <= 144 else (bruto - 144) * 0.79 + 144

Tingimusavaldise asemel saab alati kasutada tingimuslauset …

def neto(bruto):
    if bruto <= 144:
        vastus = bruto
    else:
        vastus = (bruto - 144) * 0.79 + 144

    return vastus

… aga mõnikord saab tingimusavaldisega oma idee lihtsalt kompaktsemalt kirja panna.

Märkus

Ära aja segamini ka tingimusavaldist ja loogilist avaldist. Loogiline avaldis on avaldis, mille tüüp on bool. Tingimusavaldis on avaldis, milles on kasutatud äsja tutvustatud valikuskeemi, tingimusavaldise tüüp tavaliselt ei ole bool.

Märkus

Kui sulle siiski tundub, et tingimusavaldis teeb sinu jaoks asjad liiga segaseks, siis võid seda rahumeeli ignoreerida. Alati saab hakkama ka ainult tingimuslausega. Mitmes populaarses programmeerimiskeeles isegi pole tingimusavaldist.