A Pythonban egy feladatot általában több módon, többféle nyelvi lehetőséggel is meg lehet oldani. Így például számos műveletre léteznek operátorok, de ezek mellett vannak függvények vagy metódusok, amelyek hívásával a végeredmény tekintetében hasonlóan célt érünk. Felmerülhet a kérdés, hogy akkor melyik utat válasszuk egy adott feladat esetén.
Erre, ahogy az általában lenni szokott, nem lehet egy igaz választ adni. A következő kérdések azonban segíthetik a döntést:
– Melyik esetben lesz jobb a kódolvashatóság?
– Melyik esetben nagyobb a hibakockázat?
– Akarjuk-e kifejezésben használni a műveletet?
– Kivételdobás kívánatos-e?
– Van-e egyáltalán lehetőség a választásra?
– Nem élünk-e vissza a nyelvi lehetőségekkel?
Az alábbi táblázatban néhány feladatot soroltunk fel, megadva az alternatív megoldásokat, és azt is, hogy fenti szempontok alapján hogyan lehet értékelni azokat.
A táblázat alatt egy olyan feladatot látunk, amelynél az I. megoldásban visszaéltünk a nyelvi szerkezet adta lehetőséggel.

Ahhoz, hogy megértsük, hogy miért történik itt visszaélés, idézzük fel, hogy mit is jelent a Pythonban a kifejezés. A kifejezés kiértékelhető utasításokat, műveleteket jelent, amelyek végrehajtásának eredménye egy objektum. Ezért szerepelhet a kifejezés értékadó műveleti operátor jobb oldalán. Nem szoktuk azonban hangsúlyozni, hogy a kifejezésnek szemantikailag érdeminek kell lenni, hiszen ezért írunk le egy műveletsort. Hogy még világosabb legyen, nézzük fordítva a dolgot: van-e értelme olyan kifejezést írni, amiről előre tudjuk, hogy mindig ugyanazt az értéket, például a None-t adja eredményül? A válasz nyilván az, hogy nincs.
Azok a nyelvi szerkezetek, amelyek kifejezést várnak, persze tudnak fogadni olyan kifejezést is, amely előre tudott állandó értéket ad, de valójában nem erre szolgálnak, hanem érdemi kifejezésekkel való munkára.
Azok a Python függvények, amelyek valódi célja nem egy visszatérési érték szolgáltatása, hanem egy utasítássor lefuttatása, általában valamilyen állandó értékkel – legtöbbször None-nal – térnek vissza. Ezért is különbözteti meg elvi szinten a Python tudásépítés lépésről lépésre című e-könyv az ilyen függvényeket a „Rutineljárások” című fejezetben, mert valójában ezek eljárások.
A mutatott példában elvi szinten tehát a visszaélés ott történik, hogy a print() függvény valójában egy eljárás, és mint ilyen, nem feltételes kifejezésbe való, hanem feltételes elágazásba. Nem beszélve arról, hogy kódbővítés esetén a feltételes elágazásban gond nélkül lehet újabb utasításokat tenni, míg a feltételes kifejezésbe ez erősen korlátozott.