@@ -121,7 +121,7 @@ Předchozí program se dá napsat i takto:
121121from math import pi
122122
123123def obsah_elipsy (a , b ):
124- print (' Obsah je' , pi * a * b)
124+ print (' Obsah je' , pi * a * b) # Pozor, `print` místo `return`!
125125
126126obsah_elipsy(3 , 5 )
127127```
@@ -140,6 +140,37 @@ print(objem_eliptickeho_valce(3, 5, 3))
140140
141141... ale kdyby výsledek přímo vypsala, nešlo by to.
142142
143+ Další důvod, proč hodnoty spíš vracet než vypisovat, je ten, že jedna funkce se
144+ dá použít v různých situacích.
145+ Funkci s ` print ` by nešlo rozumně použít tehdy, když nás příkazová
146+ řádka vůbec nezajímá.
147+ Třeba v grafické hře, webové aplikaci, nebo pro ovládání robota.
148+
149+ Podobně je to se vstupem: když použiju v rámci své funkce ` input ` , bude se
150+ moje funkce dát použít jen v situacích, kdy je u počítače klávesnice a za ní
151+ člověk.
152+ Proto je lepší funkcím potřebné informace předávat jako argumenty
153+ a ` input ` (nebo textové políčko či měření z čidla robota) nemít ve funkci,
154+ ale vně:
155+
156+ ``` python
157+ from math import pi
158+
159+ def obsah_elipsy (a , b ):
160+ """ Vrátí obsah elipsy s poloosami daných délek"""
161+ # Jen samotný výpočet:
162+ return pi * a * b
163+
164+ # print a input jsou "venku":
165+ x = input (' Zadej délku poloosy 1: ' )
166+ y = input (' Zadej délku poloosy 2: ' )
167+ print (' Obsah je' , obsah_elipsy(x, y))
168+ ```
169+
170+ Samozřejmě existují výjimky: funkce která přímo vytváří textový výpis,
171+ může používat ` print ` ; funkce která načítá textové informace zase ` input ` .
172+ Když ale funkce něco počítá, je dobré v ní ` print ` ani ` input ` nemít.
173+
143174
144175## None
145176
0 commit comments