summaryrefslogtreecommitdiff
path: root/book/module1/control_structures.tex
diff options
context:
space:
mode:
Diffstat (limited to 'book/module1/control_structures.tex')
-rw-r--r--book/module1/control_structures.tex202
1 files changed, 0 insertions, 202 deletions
diff --git a/book/module1/control_structures.tex b/book/module1/control_structures.tex
deleted file mode 100644
index 4042e09..0000000
--- a/book/module1/control_structures.tex
+++ /dev/null
@@ -1,202 +0,0 @@
-\section{Control Structures}\label{control-structures}
-
-Control structures allow us to control the flow of execution in a Python
-program. The two main types are \textbf{conditional statements
-(\texttt{if} statements)} and \textbf{loops (\texttt{for} and
-\texttt{while} loops)}.
-
-\subsection{Conditional Statements}\label{conditional-statements}
-
-Conditional statements allow a program to execute different blocks of
-code depending on whether a given condition is \texttt{True} or
-\texttt{False}. These conditions are typically comparisons, such as
-checking if one number is greater than another.
-
-\subsubsection{\texorpdfstring{The \texttt{if}
-Statement}{The if Statement}}\label{the-if-statement}
-
-The simplest form of a conditional statement is the \texttt{if}
-statement. If the condition evaluates to \texttt{True}, the indented
-block of code runs. Otherwise, the program moves on without executing
-the statement.
-
-For example, consider a situation where we need to determine if a person
-is an adult based on their age. If the age is 18 or greater, we print a
-message saying they are an adult.
-
-\subsubsection{\texorpdfstring{The \texttt{if-else}
-Statement}{The if-else Statement}}\label{the-if-else-statement}
-
-Sometimes, we need to specify what should happen if the condition is
-\texttt{False}. The \texttt{else} clause allows us to handle this case.
-Instead of just skipping over the block, the program can execute an
-alternative action.
-
-For instance, if a person is younger than 18, they are considered a
-minor. If the condition of being an adult is not met, the program will
-print a message indicating that the person is a minor.
-
-\subsubsection{\texorpdfstring{The \texttt{if-elif-else}
-Statement}{The if-elif-else Statement}}\label{the-if-elif-else-statement}
-
-When dealing with multiple conditions, the \texttt{if-elif-else}
-structure is useful. The program evaluates conditions in order,
-executing the first one that is \texttt{True}. If none of the conditions
-are met, the \texttt{else} block runs.
-
-For example, in a grading system, different score ranges correspond to
-different letter grades. If a student's score is 90 or higher, they
-receive an ``A''. If it's between 80 and 89, they get a ``B'', and so
-on. If none of the conditions match, they receive an ``F''.
-
-\subsubsection{\texorpdfstring{Nested \texttt{if}
-Statements}{Nested if Statements}}\label{nested-if-statements}
-
-Sometimes, we need to check conditions within other conditions. This is
-known as \textbf{nesting}. For example, if we first determine that a
-person is an adult, we can then check if they are a student. Based on
-that information, we print different messages.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\CommentTok{\# Getting user input for the student\textquotesingle{}s score}
-\NormalTok{score }\OperatorTok{=} \BuiltInTok{int}\NormalTok{(}\BuiltInTok{input}\NormalTok{(}\StringTok{"Enter the student\textquotesingle{}s score (0{-}100): "}\NormalTok{))}
-
-\ControlFlowTok{if} \DecValTok{0} \OperatorTok{\textless{}=}\NormalTok{ score }\OperatorTok{\textless{}=} \DecValTok{100}\NormalTok{:}
- \ControlFlowTok{if}\NormalTok{ score }\OperatorTok{\textgreater{}=} \DecValTok{90}\NormalTok{:}
-\NormalTok{ grade }\OperatorTok{=} \StringTok{"A"}
- \ControlFlowTok{elif}\NormalTok{ score }\OperatorTok{\textgreater{}=} \DecValTok{80}\NormalTok{:}
-\NormalTok{ grade }\OperatorTok{=} \StringTok{"B"}
- \ControlFlowTok{elif}\NormalTok{ score }\OperatorTok{\textgreater{}=} \DecValTok{70}\NormalTok{:}
-\NormalTok{ grade }\OperatorTok{=} \StringTok{"C"}
- \ControlFlowTok{elif}\NormalTok{ score }\OperatorTok{\textgreater{}=} \DecValTok{60}\NormalTok{:}
-\NormalTok{ grade }\OperatorTok{=} \StringTok{"D"}
- \ControlFlowTok{else}\NormalTok{:}
-\NormalTok{ grade }\OperatorTok{=} \StringTok{"F"} \CommentTok{\# Score below 60 is a failing grade}
-
-
- \ControlFlowTok{if}\NormalTok{ grade }\OperatorTok{==} \StringTok{"F"}\NormalTok{:}
- \BuiltInTok{print}\NormalTok{(}\StringTok{"The student has failed."}\NormalTok{)}
-\NormalTok{ retake\_eligible }\OperatorTok{=} \BuiltInTok{input}\NormalTok{(}\StringTok{"Is the student eligible for a retest? (yes/no): "}\NormalTok{).strip().lower()}
-
- \ControlFlowTok{if}\NormalTok{ retake\_eligible }\OperatorTok{==} \StringTok{"yes"}\NormalTok{:}
- \BuiltInTok{print}\NormalTok{(}\StringTok{"The student is eligible for a retest."}\NormalTok{)}
- \ControlFlowTok{else}\NormalTok{:}
- \BuiltInTok{print}\NormalTok{(}\StringTok{"The student has failed the course and must retake it next semester."}\NormalTok{)}
-
-
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{Loops in Python}\label{loops-in-python}
-
-Loops allow a program to execute a block of code multiple times. This is
-especially useful for tasks such as processing lists of data, performing
-repetitive calculations, or automating tasks.
-
-\subsubsection{\texorpdfstring{The \texttt{for}
-Loop}{The for Loop}}\label{the-for-loop}
-
-A \texttt{for} loop iterates over a sequence, such as a list, tuple,
-string, or a range of numbers. Each iteration assigns the next value in
-the sequence to a loop variable, which can then be used inside the loop.
-
-For instance, if we have a list of fruits and want to print each fruit's
-name, a \texttt{for} loop can iterate over the list and display each
-item.
-
-Another useful feature of \texttt{for} loops is the \texttt{range()}
-function, which generates a sequence of numbers. This is commonly used
-when we need to repeat an action a specific number of times. For
-example, iterating from 0 to 4 allows us to print a message five times.
-
-Additionally, the \texttt{enumerate()} function can be used to loop
-through a list while keeping track of the index of each item. This is
-useful when both the position and the value in a sequence are needed.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{fruits }\OperatorTok{=}\NormalTok{ [}\StringTok{"apple"}\NormalTok{, }\StringTok{"banana"}\NormalTok{, }\StringTok{"cherry"}\NormalTok{] }
-\ControlFlowTok{for}\NormalTok{ x }\KeywordTok{in}\NormalTok{ fruits: }
-  \BuiltInTok{print}\NormalTok{(x)}
-\end{Highlighting}
-\end{Shaded}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ControlFlowTok{for}\NormalTok{ x }\KeywordTok{in} \BuiltInTok{range}\NormalTok{(}\DecValTok{6}\NormalTok{): }
-  \BuiltInTok{print}\NormalTok{(x) }
-\ControlFlowTok{else}\NormalTok{: }
-  \BuiltInTok{print}\NormalTok{(}\StringTok{"Finally finished!"}\NormalTok{)}
-\end{Highlighting}
-\end{Shaded}
-
-\subsubsection{\texorpdfstring{The \texttt{while}
-Loop}{The while Loop}}\label{the-while-loop}
-
-Unlike \texttt{for} loops, which iterate over a sequence, \texttt{while}
-loops continue running as long as a specified condition remains
-\texttt{True}. This is useful when the number of iterations is not known
-in advance.
-
-For example, a countdown timer can be implemented using a \texttt{while}
-loop. The loop will continue decreasing the count until it reaches zero.
-
-It's important to be careful with \texttt{while} loops to avoid infinite
-loops, which occur when the condition never becomes \texttt{False}. To
-prevent this, ensure that the condition will eventually change during
-the execution of the loop.
-
-A \texttt{while} loop can also be used to wait for a certain event to
-occur. For example, in interactive programs, a \texttt{while\ True} loop
-can keep running until the user provides a valid input, at which point
-we break out of the loop.
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\NormalTok{i }\OperatorTok{=} \DecValTok{1}
-\ControlFlowTok{while}\NormalTok{ i }\OperatorTok{\textless{}} \DecValTok{6}\NormalTok{: }
-\NormalTok{  print(i) }
-\NormalTok{  i }\OperatorTok{+=} \DecValTok{1}
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{Loop Control Statements}\label{loop-control-statements}
-
-Python provides special statements to control the behavior of loops.
-These can be used to break out of a loop, skip certain iterations, or
-simply include a placeholder for future code.
-
-\subsubsection{\texorpdfstring{The \texttt{break}
-Statement}{The break Statement}}\label{the-break-statement}
-
-The \texttt{break} statement is used to exit a loop before it has
-iterated through all its elements. When the \texttt{break} statement is
-encountered, the loop stops immediately, and the program continues
-executing the next statement outside the loop.
-
-For instance, if we are searching for a specific value in a list, we can
-use a \texttt{break} statement to stop the loop as soon as we find the
-item, instead of continuing unnecessary iterations.
-
-\subsubsection{\texorpdfstring{The \texttt{continue}
-Statement}{The continue Statement}}\label{the-continue-statement}
-
-The \texttt{continue} statement is used to skip the current iteration
-and proceed to the next one. Instead of exiting the loop entirely, it
-simply moves on to the next cycle.
-
-For example, if we are iterating over numbers and want to skip
-processing number 2, we can use \texttt{continue}. The loop will ignore
-that iteration and proceed with the next number.
-
-\subsubsection{\texorpdfstring{The \texttt{pass}
-Statement}{The pass Statement}}\label{the-pass-statement}
-
-The \texttt{pass} statement is a placeholder that does nothing. It is
-useful when a block of code is syntactically required but no action
-needs to be performed yet.
-
-For example, in a loop where a condition has not yet been implemented,
-using \texttt{pass} ensures that the code remains valid while avoiding
-errors.