@@ -121,7 +121,7 @@ Předchozí program se dá napsat i takto:
121
121
from math import pi
122
122
123
123
def obsah_elipsy (a , b ):
124
- print (' Obsah je' , pi * a * b)
124
+ print (' Obsah je' , pi * a * b) # Pozor, `print` místo `return`!
125
125
126
126
obsah_elipsy(3 , 5 )
127
127
```
@@ -140,6 +140,37 @@ print(objem_eliptickeho_valce(3, 5, 3))
140
140
141
141
... ale kdyby výsledek přímo vypsala, nešlo by to.
142
142
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
+
143
174
144
175
## None
145
176
0 commit comments