\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{MrDeniz (papapadzul)} \pdfinfo{ /Title (unit-5-loops.pdf) /Creator (Cheatography) /Author (MrDeniz (papapadzul)) /Subject (Unit 5 - Loops Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Unit 5 - Loops Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{MrDeniz (papapadzul)} via \textcolor{DarkBackground}{\uline{cheatography.com/68635/cs/17910/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}MrDeniz (papapadzul) \\ \uline{cheatography.com/papapadzul} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 14th November, 2018.\\ Updated 14th November, 2018.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{What is LOOP}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{A loop can be used to tell a program to execute statements repeatedly. \newline % Row Count 2 (+ 2) Suppose that you need to display a string (e.g., Programming is fun!) 100 times. It would \newline % Row Count 4 (+ 2) be tedious to type the statement 100 times: \newline % Row Count 5 (+ 1) print("Programming is fun!") \newline % Row Count 6 (+ 1) print("Programming is fun!") \newline % Row Count 7 (+ 1) ... \newline % Row Count 8 (+ 1) print("Programming is fun!")% Row Count 9 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{count = 0 \newline while count \textless{} 100: \newline print("Programming is fun!") \newline count = count + 1} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The for Loop}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{i = initialValue \# Initialize loop-control variable \{\{nl\}\} \newline while i \textless{} endValue: \{\{nl\}\} \newline \# Loop body \{\{nl\}\} \newline ... \{\{nl\}\} \newline i += 1 \# Adjust loop-control variable \{\{nl\}\} \newline A for loop can be used to simplify the preceding loop: \{\{nl\}\} \newline for i in range(initialValue, endValue): \{\{nl\}\} \newline \# Loop body \{\{nl\}\} \newline In general, the syntax of a for loop is: \{\{nl\}\} \newline for var in sequence: \{\{nl\}\} \newline \# Loop body \{\{nl\}\}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{A Python for loop iterates through each value in a sequence.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Loop Design Strategies}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Step 1: Identify the statements that need to be repeated. \newline % Row Count 2 (+ 2) Step 2: Wrap these statements in a loop like this: \newline % Row Count 4 (+ 2) while True: \newline % Row Count 5 (+ 1) {\emph{ Statements}} \newline % Row Count 6 (+ 1) Step 3: Code the \seqsplit{loop-continuation-condition} and add appropriate statements for controlling the loop. \newline % Row Count 9 (+ 3) while \seqsplit{loop-continuation-condition:} \newline % Row Count 10 (+ 1) {\emph{Statements}} \newline % Row Count 11 (+ 1) {\emph{Additional statements for controlling the loop}}% Row Count 13 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Controlling a Loop}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{\{bt\}\}With user Confirmation\{\{bb\}\}} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}continueLoop == 'Y': \{\{nl\}\} while continueLoop == 'Y' : \{\{nl\}\}\# Execute the loop body once \{\{nl\}\}... \{\{nl\}\}\# Prompt the user for confirmation \{\{nl\}\}continueLoop = input("Enter Y to continue and N to quit: ")} \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{\{\{bb\}\}Sentinel Value\{\{bb\}\}} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Another common technique for controlling a loop is to designate a special input value, known as a sentinel value, which signifies the end of the input. A loop that uses a sentinel value in this way is called a sentinel-controlled loop. \{\{nl\}\}\{\{nl\}\} data = eval(input("Enter an integer (the input ends " + "if it is 0): ")) \{\{nl\}\} \{\{nl\}\} \# Keep reading data until the input is 0 \{\{nl\}\} sum = 0\{\{nl\}\} sum += data\{\{nl\}\} data = eval(input("Enter an integer (the input ends " + "if it is 0): ")) \{\{nl\}\} \{\{nl\}\} print("The sum is", sum)} \tn % Row Count 19 (+ 13) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Input-Output Redirection}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{number = eval(input("Enter an integer: "))\{\{nl\}\} max = number \{\{nl\}\} while number != 0: \{\{nl\}\} number = eval(input("Enter an integer: ")) \{\{nl\}\} if number \textgreater{} max: \{\{nl\}\} max = number\{\{nl\}\} print("max is", max) \{\{nl\}\} print("number", number) \{\{nl\}\}% Row Count 5 (+ 5) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The while Loop}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{A while loop executes statements repeatedly as long as a condition remains true. \newline % Row Count 2 (+ 2) while \seqsplit{loop-continuation-condition:} \newline % Row Count 3 (+ 1) \# Loop body \newline % Row Count 4 (+ 1) Statement(s)% Row Count 5 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{sum = 0 \newline i = 1 \newline while i \textless{} 10: \newline sum = sum + i \newline i = i + 1 \newline print("sum is", sum)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Nested Loop}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{print(" Multiplication Table") \newline \# Display the number title \newline print(" |", end = '') \newline \newline print(" ", j, end = '') \newline print() \# Jump to the new line \newline print("——————————————————————————————————————————") \newline \newline \# Display table body \newline \newline print(i, "|", end = '') \newline \newline \# Display the product and align properly \newline print(format(i * j, "4d"), end = '') \newline print() \# Jump to the new line} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{A loop can be nested inside another loop. \newline Nested loops consist of an outer loop and one or more inner loops. \newline Each time the outer loop is repeated, the inner loops are reentered and started anew.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Keyword break}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{1 sum = 0 \newline 2 number = 0 \newline 3 \newline 4 while number \textless{} 20: \newline 5 number += 1 \newline 6 sum += number \newline 7 if sum \textgreater{}= 100: \newline 8 break \newline 9 \newline 10 print("The number is", number) \newline 11 print("The sum is", sum)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{TestBreak.py} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Keyword continue}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{1 sum = 0 \newline 2 number = 0 \newline 3 \newline 4 while number \textless{} 20: \newline 5 number += 1 \newline 6 if number == 10 or number == 11: \newline 7 continue \newline 8 sum += number \newline 9 \newline 10 print("The sum is", sum)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{TestContinue.py} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}