From 4abc43cdcb7fba399d5377481dd88e54b2db8cb6 Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Thu, 24 Apr 2025 15:31:56 -0600 Subject: Added tex file structure for each module --- book/module1/functions.tex | 110 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 book/module1/functions.tex (limited to 'book/module1/functions.tex') diff --git a/book/module1/functions.tex b/book/module1/functions.tex new file mode 100644 index 0000000..07da182 --- /dev/null +++ b/book/module1/functions.tex @@ -0,0 +1,110 @@ +\section{Functions}\label{functions} + +Like a traditional mathematical functions, python functions can take an +input, process it, and give an output. In python, the input variables +are referred to as \emph{arguments}. Functions are blocks of code that +is run every time it's called. This allows us to re-use code. + +Functions are defined by using the def keyword. Reminder: it is +important to keep track of indentations as it signifies the end of the +function when the indentation returns back to the same level. + +\subsection{Defining Functions}\label{defining-functions} + +\subsubsection{Simple function}\label{simple-function} + +A simple function with no input variable can be useful if you need to +re-use code multiple times without having to re-write it. + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{def}\NormalTok{ function\_name():} + \BuiltInTok{print}\NormalTok{(}\StringTok{"This is from a function"}\NormalTok{)} +\end{Highlighting} +\end{Shaded} + +\subsubsection{Defining a function with one +input}\label{defining-a-function-with-one-input} + +We can pass variables through to the function to be processed as +follows: + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{def}\NormalTok{ function(x):} + \BuiltInTok{print}\NormalTok{(x }\OperatorTok{+} \StringTok{" is best"}\NormalTok{)} +\end{Highlighting} +\end{Shaded} + +Note input variables can be of any data type (integer, float, string, +etc.). \#\#\# Returning values from a function If we want to calculate a +value and pass it back to the script for further use, we can use the +\texttt{return} keyword. Let's define a linear function that takes two +inputs, \texttt{x} and \texttt{b}, computes the corresponding \texttt{y} +value, and returns it so it can be used elsewhere in the code. + +\begin{Shaded} +\begin{Highlighting}[] + \KeywordTok{def}\NormalTok{ function(x, b):} +\NormalTok{ y }\OperatorTok{=} \DecValTok{3}\OperatorTok{*}\NormalTok{x}\OperatorTok{+}\NormalTok{b} + \ControlFlowTok{return}\NormalTok{ y} +\end{Highlighting} +\end{Shaded} + +For multiple output variables we can add \#\# Calling functions Now that +we've covered defining functions we want to call the function in order +to execute the block inside the function. To do this, we simply re-call +the function name as follows. + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{function(}\DecValTok{2}\NormalTok{,}\OperatorTok{{-}}\DecValTok{1}\NormalTok{)} +\end{Highlighting} +\end{Shaded} + +Note that when running this code, nothing happens. This is because we +haven't told the computer what to do with the output. Hence, if we wish +to store the output then we need to use the assign operator \texttt{=}. + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{output }\OperatorTok{=}\NormalTok{ function(}\DecValTok{2}\NormalTok{,}\OperatorTok{{-}}\DecValTok{1}\NormalTok{)} + +\BuiltInTok{print}\NormalTok{(output)} +\end{Highlighting} +\end{Shaded} + +In case you want to return multiple output variable from a single +function we will have\ldots{} + +\subsection{Summary}\label{summary} + +\begin{Shaded} +\begin{Highlighting}[] +\KeywordTok{def}\NormalTok{ function\_name(argument1, argument2, argument3)} +\NormalTok{ output1 }\OperatorTok{=}\NormalTok{ argument1 }\OperatorTok{*}\NormalTok{ argument2 }\OperatorTok{{-}}\NormalTok{ argument3} +\NormalTok{ output2 }\OperatorTok{=}\NormalTok{ argument2 }\OperatorTok{+}\NormalTok{ argument3} + \ControlFlowTok{return}\NormalTok{ output1, output2} + +\NormalTok{[solution1, solution2] }\OperatorTok{=}\NormalTok{ function\_name(}\DecValTok{1}\NormalTok{,}\DecValTok{2}\NormalTok{,}\DecValTok{3}\NormalTok{)} +\end{Highlighting} +\end{Shaded} + +\begin{itemize} +\tightlist +\item + \texttt{def} - defines a function. All the code that is indented + underneath is considered inside the function block. +\item + \texttt{function\_name} - this is used to call the function block. +\item + \texttt{argument1} (optional) - input variable. This is data that can + be pass to the function. It is possible to have multiple variables + separated by a comma. As well as can be omitted if the function should + just give you an output such as. +\item + \texttt{return} (optional) - if you wish to return something to your + script, the return keyword is used. The keyword can be followed by an + output variable or a constant. For multiple output variables, separate + them by a comma. +\end{itemize} -- cgit v1.2.3