\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{pitchanun} \pdfinfo{ /Title (japython.pdf) /Creator (Cheatography) /Author (pitchanun) /Subject (JaPython 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}{70CDDB} \definecolor{LightBackground}{HTML}{EDF8FA} \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{JaPython Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{pitchanun} via \textcolor{DarkBackground}{\uline{cheatography.com/25800/cs/6931/}}} \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}pitchanun \\ \uline{cheatography.com/pitchanun} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 12th February, 2016.\\ Updated 9th May, 2016.\\ 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*}{3} \begin{tabularx}{5.377cm}{x{1.19448 cm} x{3.78252 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Vocabulary}} \tn % Row 0 \SetRowColor{LightBackground} variable & something that can change \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} string & a list of characters \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Function}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{print()} & show information that you want on the screen \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} int() & Change number to be number integer \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} \seqsplit{float()} & Change number to be decimal number \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \seqsplit{input()} & Gain information from user \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} str() & A list of number, letter and symbols \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} len() & The length of the string \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} \# & Comment, no effect \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Vocabulary}} \tn % Row 0 \SetRowColor{LightBackground} Variable & Hold a value and can be change \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} String & A list of character such as number, letter and symbols \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} Integer number & Whole number/counting number \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} Float number & The number in decimal \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} Syntax & Grammar/Structure of language \tn % Row Count 9 (+ 1) % Row 5 \SetRowColor{white} Modulo & Find the remainder \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} Boolean & True/False \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Example}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Print (2) - integer \newline % Row Count 1 (+ 1) Print (2.5) - floating point \newline % Row Count 2 (+ 1) Print ("Hello") - string \newline % Row Count 3 (+ 1) Print (mystr) - variable \newline % Row Count 4 (+ 1) Print (mystr,"Hi",2,1.0) -{}- commas \newline % Row Count 5 (+ 1) mystr = "Hi" \newline % Row Count 6 (+ 1) mystr ← name \newline % Row Count 7 (+ 1) "Hi" ← value can change \newline % Row Count 8 (+ 1) print (int(1.5)) → 1 \newline % Row Count 9 (+ 1) print (int("2")) → 2% Row Count 10 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Create Function}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{def calc(num1, num2, operation): \newline \# use if/elif/else to check what operation to do \newline if operation == "sum": \newline return sum(num1, num2) \newline elif operation == "product": \newline return product(num1, num2) \newline elif operation == "diff": \newline return diff(num1, num2) \newline elif operation == "div": \newline return div(num1, num2) \newline \#call the correct function and return the answer \newline \newline def sum(a, b): \newline return a + b \newline \# calculate the sum of a and b \newline \newline \# return the answer \newline \newline def product(a, b): \newline return a *b \newline \# calculate the product of a and b \newline \newline \# return the answer \newline \newline def diff(a, b): \newline a - b \newline \#calculate the difference between a and b \newline \newline \# return the answer \newline \newline def div(a, b): \newline if b != 0: \newline return a /b \newline else: \newline print("Error") \newline \#calculate the division of a and b \newline \newline \# return the answer \newline \newline print(calc(10, 0, "div")) \# division by zero \newline \newline print(cal(1,2,"sum")) \#output should be 3 \newline print(calc (4, 2, "diff")) \# output should be 2 \newline print(calc (9, 3, "div" )) \#output should be 3 \newline print(calc (2, 12, "product")) \#output should be 24} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Math}} \tn % Row 0 \SetRowColor{LightBackground} == & equal to \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} != & no equal to \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \textless{} & less than \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \textgreater{} & more than \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \textless{}= & less than or equal to \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \textgreater{}= & more than or equal to \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \% & Modulo, Find the remainder 33 \% 10 == 3 \tn % Row Count 8 (+ 2) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{// divide with answer as an integer. E.g. 5//2 == 2} \tn % Row Count 10 (+ 2) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{/ divide with answer as a float. E.g. 5/2 == 2.5} \tn % Row Count 11 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{True or anything is always True False and anything is always False} \tn % Row Count 13 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.38896 cm} x{2.58804 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Addition}} \tn % Row 0 \SetRowColor{LightBackground} string + string & Combine together \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} string + number & CRASH! \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} number + number & Addition (Math) \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Multiplication and Exponents}} \tn % Row 0 \SetRowColor{LightBackground} string * number & Combine that string \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} string* string & CRASH! \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} number * number & Multiply (Math) \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} string ** string & CRASH! \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} number ** number & Exponent (Math) \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} string ** number & CRASH! \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Define 1}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\# write definitions for the following words \newline \# use a multi-line string to print them to the screen \newline \newline def printDefinitions(word): \# define the function named printDefinitions \newline \newline if word == "variable": \newline \# variable \newline \newline print (""" \newline \newline a variable is reserved memory locations to store values. \newline \newline """) \newline \newline elif word == "function": \newline \#function \newline print (""" \newline \newline a function is block of organized \newline \newline """) \newline elif word == "function call": \newline \#function call \newline print (""" \newline \newline a function call is function that already have code, and use it. \newline \newline """) \newline elif word == "parameter": \newline \#parameter \newline print (""" \newline \newline a parameter is something that put in function to define variable. \newline \newline """) \newline elif word == "argument": \newline \#argument \newline print (""" \newline \newline a argument is parameter \newline \newline """) \newline elif word == "string": \newline \#string \newline print (""" \newline \newline a string is characters in quotes \newline \newline """) \newline \newline else: \newline print ("Unknown word") \newline \newline while True: \newline \newline user\_input = input("Enter a word to define: ") \newline \newline \seqsplit{printDefinitions(user\_input)} \# function call} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Reverse Word}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{while True: \newline word = input("Please enter a word") \newline index = 0 \newline reverse = ' ' \newline \newline while int(index) \textless{} len(word): \newline reverse = word{[}index{]} + (reverse) \newline index = int(index) + 1 \newline \newline print ("Reverse:", reverse)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Convert to binary}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{user\_number = ' ' \newline \newline while user\_number != '0' \newline user\_number = input ("Enter a number to convert to binary") \newline number = int(user\_number) \newline binary\_string = ' ' \newline \newline while (number \textgreater{} 0): \newline remainder = number\%2 \newline binary\_string = str(remainder) + binary\_string \newline number = number//2 \newline \newline print ("Binary string is", binary\_string)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Countdown Machine}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{user\_number = input("What number do you want to count down? ") \newline number = int(user\_number) \newline countdown\_string = ' ' \newline \newline while number \textgreater{} 0: \newline countdown\_number = countdown\_string + str(number) + " " \newline number = number - 1 \newline \#print(number) \newline \newline print (countdown\_string)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Naming Convention}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Rule for giving name \newline % Row Count 1 (+ 1) - letter \newline % Row Count 2 (+ 1) - numbers \newline % Row Count 3 (+ 1) - underscore\_ \newline % Row Count 4 (+ 1) Valid name \newline % Row Count 5 (+ 1) - \_myStr \newline % Row Count 6 (+ 1) - my3 \newline % Row Count 7 (+ 1) - Hello\_there \newline % Row Count 8 (+ 1) Invalid name \newline % Row Count 9 (+ 1) - 3my="hi" -{}- cannot start with number \newline % Row Count 10 (+ 1) - first name="hi" \newline % Row Count 11 (+ 1) - first-name% Row Count 12 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Python}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{import random \newline % Row Count 1 (+ 1) intlist = {[}1,2,3,4,5{]} \newline % Row Count 2 (+ 1) random\_int = random.choice(intlist) \newline % Row Count 3 (+ 1) print (intlist, random\_int) \newline % Row Count 4 (+ 1) fplist = {[}1.5,2.5,3.5,4.5,5.5{]} \newline % Row Count 5 (+ 1) random\_fp = random.choice(fplist) \newline % Row Count 6 (+ 1) print (fplist, random\_fp) \newline % Row Count 7 (+ 1) strlist = {[}'1', '2', '3', '4', '5'{]} \newline % Row Count 8 (+ 1) random\_str = random.choice(strlist) \newline % Row Count 9 (+ 1) print (strlist, random\_str) \newline % Row Count 10 (+ 1) mylist = {[}1, 2, 3, 4, 5, 1.5, 2.5, 3.5, 4.5, 5.5, '1', '2', '3', '4', '5'{]} \newline % Row Count 12 (+ 2) random\_item = random.choice(mylist) \newline % Row Count 13 (+ 1) print (mylist, random\_item) \newline % Row Count 14 (+ 1) myvar1 = 1 \newline % Row Count 15 (+ 1) myvar2 = 2 \newline % Row Count 16 (+ 1) myvar3 = 3 \newline % Row Count 17 (+ 1) varlist = {[}myvar1, myvar2, myvar3{]} \newline % Row Count 18 (+ 1) random\_var = random.choice(varlist) \newline % Row Count 19 (+ 1) print (varlist, random\_var)% Row Count 20 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{radius}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{while True: \newline user\_radius = input("Please enter the radius of the circle: ") \newline radius = float(user\_radius) \newline pi = 3.1415 \newline area = pi {\emph{ radius }}* 2 \newline print("The area of the cicle is", area)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}