@@ -118,7 +118,7 @@ This will become clearer as you see more examples.
118118
119119Let's start by discussing how it's done.
120120
121- ### Syntax
121+ ### Basic Syntax
122122
123123Here's a very simple Python function, that implements the mathematical function
124124$f(x) = 2 x + 1$
@@ -171,6 +171,20 @@ print(new_abs_function(3))
171171print(new_abs_function(-3))
172172```
173173
174+ Note that a function can have arbitrarily many ` return ` statements (including zero).
175+
176+ Execution of the function terminates when the first return is hit, allowing
177+ code like the following example
178+
179+ ``` {code-cell} python3
180+ def f(x):
181+ if x < 0:
182+ return 'negative'
183+ return 'nonnegative'
184+ ```
185+
186+ Functions without a return statement automatically return the special Python object ` None ` .
187+
174188### Keyword Arguments
175189
176190``` {index} single: Python; keyword arguments
@@ -227,79 +241,8 @@ In particular
227241* Any object can be passed to a function as an argument, including other functions.
228242* A function can return any kind of object, including functions.
229243
230- We already {ref}` gave an example <test_program_6> ` of how straightforward it is to pass a function to
231- a function.
232-
233- Note that a function can have arbitrarily many ` return ` statements (including zero).
234-
235- Execution of the function terminates when the first return is hit, allowing
236- code like the following example
237-
238- ``` {code-cell} python3
239- def f(x):
240- if x < 0:
241- return 'negative'
242- return 'nonnegative'
243- ```
244-
245- Functions without a return statement automatically return the special Python object ` None ` .
246-
247-
248- ### Docstrings
249-
250- ``` {index} single: Python; Docstrings
251- ```
252-
253- Python has a system for adding comments to functions, modules, etc. called * docstrings* .
254-
255- The nice thing about docstrings is that they are available at run-time.
256-
257- Try running this
258-
259- ``` {code-cell} python3
260- def f(x):
261- """
262- This function squares its argument
263- """
264- return x**2
265- ```
266-
267- After running this code, the docstring is available
268-
269- ``` {code-cell} ipython
270- f?
271- ```
272-
273- ``` {code-block} ipython
274- :class: no-execute
275-
276- Type: function
277- String Form:<function f at 0x2223320>
278- File: /home/john/temp/temp.py
279- Definition: f(x)
280- Docstring: This function squares its argument
281- ```
282-
283- ``` {code-cell} ipython
284- f??
285- ```
286-
287- ``` {code-block} ipython
288- :class: no-execute
289-
290- Type: function
291- String Form:<function f at 0x2223320>
292- File: /home/john/temp/temp.py
293- Definition: f(x)
294- Source:
295- def f(x):
296- """
297- This function squares its argument
298- """
299- return x**2
300- ```
301-
302- With one question mark we bring up the docstring, and with two we get the source code as well.
244+ We will give examples of how straightforward it is to pass a function to
245+ a function in the following sections.
303246
304247### One-Line Functions: ` lambda `
305248
0 commit comments