\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{Bridgette Dear (bridge2)} \pdfinfo{ /Title (comp-2001.pdf) /Creator (Cheatography) /Author (Bridgette Dear (bridge2)) /Subject (COMP 2001 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{COMP 2001 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Bridgette Dear (bridge2)} via \textcolor{DarkBackground}{\uline{cheatography.com/146710/cs/31774/}}} \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}Bridgette Dear (bridge2) \\ \uline{cheatography.com/bridge2} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 20th April, 2022.\\ Updated 20th April, 2022.\\ 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}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Order Of Precedence}} \tn % Row 0 \SetRowColor{LightBackground} 1. & Parenthesis () \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} 2. & Function Call f(args..) \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} 3. & Indexing {[}{]} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} 4. & Exponents ** \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} 5. & Unary plus, Unary minus +x, -x \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} 6. & Multiplication, division, floor division, remainder *, /, //, \% \tn % Row Count 7 (+ 2) % Row 6 \SetRowColor{LightBackground} 7. & Addition and subtraction +, - \tn % Row Count 8 (+ 1) % Row 7 \SetRowColor{white} 8. & Identity operators, membership operators (in, not in, is, is not) \tn % Row Count 10 (+ 2) % Row 8 \SetRowColor{LightBackground} 9. & Equality Operators !=, == \tn % Row Count 11 (+ 1) % Row 9 \SetRowColor{white} 10. & Comparison operators \textless{}, \textless{}=, \textgreater{}, \textgreater{}= \tn % Row Count 12 (+ 1) % Row 10 \SetRowColor{LightBackground} 11. & Boolieans ( NOT, AND, OR) \tn % Row Count 13 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.76 cm} x{4.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Files, Lists, Loops, selections}} \tn % Row 0 \SetRowColor{LightBackground} fo=open() & open file under (name, w/r) \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{foname.write(str(list{[}i{]}) + "\textbackslash{}n or ,")} \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} fo.read() & reads rows of text in file \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} fo.readlines & reads columns in file \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} close() & closes file \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} Index{[}0:0:0{]} & Start, stop, stride \tn % Row Count 8 (+ 1) % Row 6 \SetRowColor{LightBackground} while i \textgreater{} var: & make sure to add : \tn % Row Count 9 (+ 1) % Row 7 \SetRowColor{white} Single outcome decision structure & if ... \tn % Row Count 11 (+ 2) % Row 8 \SetRowColor{LightBackground} Double outcome decision structure & if, else \tn % Row Count 13 (+ 2) % Row 9 \SetRowColor{white} Chained decision structure & if, elif, elif, else \tn % Row Count 15 (+ 2) % Row 10 \SetRowColor{LightBackground} Nested decision structure & if, (indent) if, else, (outdent) else \tn % Row Count 17 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.76 cm} x{4.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Definitions}} \tn % Row 0 \SetRowColor{LightBackground} \textbackslash{}n & New line \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \textbackslash{}t & Tab line \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Chained IF structure & a set of conditions that allows for only one block of code to run: \seqsplit{if...elif...elif...else} \tn % Row Count 7 (+ 5) % Row 3 \SetRowColor{white} Concatenation & the process by which strings are joined together (uses an overloaded + operator) \tn % Row Count 11 (+ 4) % Row 4 \SetRowColor{LightBackground} Implicit data type & variable = 5, variable = 5.0 \tn % Row Count 13 (+ 2) % Row 5 \SetRowColor{white} Explicit Data Type & variable = int(5.0), variable = string(5) \tn % Row Count 15 (+ 2) % Row 6 \SetRowColor{LightBackground} De Morgans Laws & not (x and y) == (not x) or (not y) not (x or y) == (not x) and (not y \tn % Row Count 19 (+ 4) % Row 7 \SetRowColor{white} Definite Loop & a loop that repeats a specified number of times; also called a counted loop \tn % Row Count 23 (+ 4) % Row 8 \SetRowColor{LightBackground} Indefenite Loop & loop that repeats an unspecified number of time based on the condition (conditional loop) \tn % Row Count 28 (+ 5) % Row 9 \SetRowColor{white} Infinite Loop & a loop that never stops. Usually the result of an error in the internal change/read \tn % Row Count 32 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.76 cm} x{4.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Definitions (cont)}} \tn % Row 10 \SetRowColor{LightBackground} Sentinel Loop & continues to process data until reaching a special value that signals the end. \tn % Row Count 4 (+ 4) % Row 11 \SetRowColor{white} function (Void and Value-Returning) & def nameOfunction (optional parameters, default parameters, etc) : \# code as needed \# that is indented \# return optional value \tn % Row Count 11 (+ 7) % Row 12 \SetRowColor{LightBackground} len() & a value returning function that indicates how long an object is (ie how many characters in a string or how many items in a list) \tn % Row Count 18 (+ 7) % Row 13 \SetRowColor{white} max() & prints largest ASCII value \tn % Row Count 20 (+ 2) % Row 14 \SetRowColor{LightBackground} min() & prints lowest ASCII value \tn % Row Count 22 (+ 2) % Row 15 \SetRowColor{white} sorted() & sorts in ASCII order \tn % Row Count 23 (+ 1) % Row 16 \SetRowColor{LightBackground} sum() & In Python, a value returning function that adds up all the numerical items in a list.n Excel, a value returning function that alls up all the numerical values in a range. \tn % Row Count 32 (+ 9) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.76 cm} x{4.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Definitions (cont)}} \tn % Row 17 \SetRowColor{LightBackground} value-returning function & a function that does its processes to produce a result that is returned to the main program \tn % Row Count 5 (+ 5) % Row 18 \SetRowColor{white} void function & a function that performs processes, but does not create/return a result \tn % Row Count 9 (+ 4) % Row 19 \SetRowColor{LightBackground} scope & a description of the location within code and of a time when that code is being executed, where/when the computer can access/know about that code \tn % Row Count 16 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.72 cm} x{5.28 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Methods}} \tn % Row 0 \SetRowColor{LightBackground} var.lower() & turns var lowercase \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} var.upper() & turns var uppercase \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} var.swapcase & swaps the case or letters (upper to lower, vice versa) \tn % Row Count 5 (+ 3) % Row 3 \SetRowColor{white} \seqsplit{var.capitalize} & capitalizes first letter \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} \seqsplit{list.append(x)} & a void method that is part of all lists that will add x to the end of that list \tn % Row Count 11 (+ 4) % Row 5 \SetRowColor{white} \seqsplit{list.index(x)} & a value returning method that is part of all list objects, that produces the location (index number) of the value x \tn % Row Count 16 (+ 5) % Row 6 \SetRowColor{LightBackground} \seqsplit{list.count(x)} & a value returning method that all lists have that will produce the number of times x occurs in the list \tn % Row Count 20 (+ 4) % Row 7 \SetRowColor{white} \seqsplit{list.remove(x)} & a void list object method that deletes the first instance of the value x from the list \tn % Row Count 24 (+ 4) % Row 8 \SetRowColor{LightBackground} \seqsplit{list.insert(index}, x) & a void method that is part of all list objects that inserts the value x at index \tn % Row Count 28 (+ 4) % Row 9 \SetRowColor{white} list.sort() & a void list object method, one that takes the list and sorts in in ascending order \tn % Row Count 32 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{2.72 cm} x{5.28 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Methods (cont)}} \tn % Row 10 \SetRowColor{LightBackground} list.pop(x) & a value returning list method that produces the value of the item at x. If x is left blank, the default is -1, the last item's value \tn % Row Count 6 (+ 6) % Row 11 \SetRowColor{white} logic Error & an error in the code that does NOT prevent the code from running, but stems from an incorrect solution that produces unintended or undesired output or other behavior \tn % Row Count 13 (+ 7) % Row 12 \SetRowColor{LightBackground} Index Error & A type of run time error (only happens when the program runs) when the code is asked to work with an index location that is larger than the length of the list or string \tn % Row Count 20 (+ 7) % Row 13 \SetRowColor{white} Name Error & a Run-time error in the code where a named thing (like a variable or a function) is invoked and/or used before it is defined. \tn % Row Count 25 (+ 5) % Row 14 \SetRowColor{LightBackground} run-time Error & an error that occurs only when the program is run - usually due to input/output and data type conflicts \tn % Row Count 29 (+ 4) % Row 15 \SetRowColor{white} syntax error & an error in the code that prevents it from running where the code does not follow the rules of spelling, punctuation and/or grammar \tn % Row Count 35 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{2.72 cm} x{5.28 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Methods (cont)}} \tn % Row 16 \SetRowColor{LightBackground} Type Error & A kind of Run-time error where the variable types do not match the function's or mathematical operator's requirements. \tn % Row Count 5 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}