Tingimuslause lihtsustamine¶
Tihti annab tingimuslauseid lihtsustada. Parandame ühe lihtsa funktsiooni (Funktsiooni mõiste ja kasutamine) stiili.
def is_even(n):
even = (n % 2 == 0)
if even == True:
return True
else:
return False
Kõigepealt võib lihtsutada avaldist even == True
.
Piisab kui kirjutada lihtsalt even
, sest muidu me kontrollime True == True
või False == True
ehk tulemus sõltubki even
tõeväärtusest.
def is_even(n):
even = (n % 2 == 0)
if even:
return True
else:
return False
Kui natuke mõelda, siis saab alljärgnevat tingimust funktsioonides tagastamisel lihtsustada.
if (condition):
return True
else:
return False
# Return value correlates with condition value, so we can simplify:
return condition
Meie näite puhul siis:
def is_even(n):
even = (n % 2 == 0)
return even
Lisame ka korraliku Docstringi ja muutuja even
ei anna meile hetkel palju juurde, seega võib selle eemaldada.
def is_even(n):
"""
Checks if the number is even.
:param n: number to check
:return: True if even, else False
"""
return n % 2 == 0
Saime esialgsega võrreldes palju puhtama ja loetavama koodi.
Tingimuslause ühel real
Pythonis on olemas ternary operator ehk tingimuslauseid on võimalik kirjutada ühele reale.
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
Esimeses näites on tingimuslause kirjutatud ühele reale ja teises näites mitmele reale:
# <value_when_true> if <condition> else <value_when_false>
fruit = 'Melon'
is_melon = True if fruit == 'Melon' else False
print(is_melon) # --> True
vs
fruit = 'Melon'
is_melon = False
if fruit == 'Melon':
is_melon = True
print(is_melon) # --> True