\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{Mario (mariofreitas)} \pdfinfo{ /Title (python-basics-strings.pdf) /Creator (Cheatography) /Author (Mario (mariofreitas)) /Subject (Python Basics - Strings 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}{105AA3} \definecolor{LightBackground}{HTML}{F0F4F9} \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{Python Basics - Strings Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Mario (mariofreitas)} via \textcolor{DarkBackground}{\uline{cheatography.com/42813/cs/13207/}}} \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}Mario (mariofreitas) \\ \uline{cheatography.com/mariofreitas} \\ \uline{\seqsplit{github}.com/MarioRaul/} \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 21st October, 2017.\\ 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{2.4 cm} x{5.6 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String Syntax}} \tn % Row 0 \SetRowColor{LightBackground} `s1 = "this is "` & Strings can be declared with " "... \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `s2 = 'a string'` & ... or ' ' \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `s1 + s2` & Returns {\emph{s1}} concatenated with {\emph{s2}} ('this is a string') \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `s1 * 3` & Returns {\emph{s1}} concatenated with itself 3 times (this is this is this is) \tn % Row Count 9 (+ 3) % Row 4 \SetRowColor{LightBackground} `s1{[}3{]}` & Returns 4th element of s1 (s) \tn % Row Count 11 (+ 2) % Row 5 \SetRowColor{white} `s1{[}0:3{]}` & Returns 1st to 3rd element of s1 (thi) \tn % Row Count 13 (+ 2) % Row 6 \SetRowColor{LightBackground} `s1{[}0:7:2{]}` & Returns 1st to 7th element of s1 skipping one at a time (ti s) \tn % Row Count 16 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.6 cm} x{4.4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String Methods}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{`s = "stRing"`} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `s.capitalize()` & Returns capitalized version of {\emph{s}} (String) \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `s.upper()` & Returns upper case version of {\emph{s}} (STRING) \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `s.lower()` & Returns lower case version of {\emph{s}} (string) \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} `s.title()` & Returns {\emph{s}} with first letter of each word capitalized (String) \tn % Row Count 10 (+ 3) % Row 5 \SetRowColor{white} `s.swapcase()` & Returns the case swapped version of {\emph{s}} (STrING) \tn % Row Count 13 (+ 3) % Row 6 \SetRowColor{LightBackground} `s.replace('tR', 'l')`\{\{nobreak\}\} & Returns a copy of {\emph{s}} with all {\emph{'tR'}} replaced by {\emph{'l'}} (sling) \tn % Row Count 16 (+ 3) % Row 7 \SetRowColor{white} \seqsplit{`s.startswith('R')`} & Returns true if {\emph{s}} starts with {\emph{'R'}} and false otherwise (False) \tn % Row Count 19 (+ 3) % Row 8 \SetRowColor{LightBackground} \seqsplit{`s.endswith('ing')`} & Returns true if {\emph{s}} ends with {\emph{'ing'}} and false otherwise (True) \tn % Row Count 22 (+ 3) % Row 9 \SetRowColor{white} `s.split('R')` & Splits the string into a list of strings. In this case, {\emph{"R"}} is the splitting parameter. ({[}"sr", "ing"{]}) \tn % Row Count 27 (+ 5) % Row 10 \SetRowColor{LightBackground} `s.strip()` & Removes spaces in the begining and in the end of the string ("stRing") \tn % Row Count 31 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.6 cm} x{4.4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String Methods (cont)}} \tn % Row 11 \SetRowColor{LightBackground} `s.strip("g")` & Removes {\emph{"g"}} in the begining and in the end of the string ("stRin") \tn % Row Count 4 (+ 4) % Row 12 \SetRowColor{white} `''.join({[}s, 's are cool'{]})` & Returns the string '' concatenated with {\emph{s}} and {\emph{'s are cool'}} ('stRings are cool') \tn % Row Count 8 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.64 cm} x{5.36 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String Formatting - Printf Arguments}} \tn % Row 0 \SetRowColor{LightBackground} `d` & Int \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `f` & Float \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `s` & String \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `10d` & Reserves 10 spaces to the int \tn % Row Count 5 (+ 2) % Row 4 \SetRowColor{LightBackground} `\textasciicircum{}10d` & Reserves 10 spaces to the int and centralize the content \tn % Row Count 8 (+ 3) % Row 5 \SetRowColor{white} `\textless{}10d` & Reserves 10 spaces to the int and align the content left \tn % Row Count 11 (+ 3) % Row 6 \SetRowColor{LightBackground} `\textgreater{}10d` & Reserves 10 spaces to the int and align the content right \tn % Row Count 14 (+ 3) % Row 7 \SetRowColor{white} `*\textasciicircum{}10d` & Reserves 10 spaces to the int , centralize the content and fill the empty spaces with {\bf{*}} \tn % Row Count 18 (+ 4) % Row 8 \SetRowColor{LightBackground} `0\textgreater{}10d` & Reserves 10 spaces to the int , align the content right and fill the empty spaces with {\bf{0s}} \tn % Row Count 22 (+ 4) % Row 9 \SetRowColor{white} `0\textgreater{}.2f` & Format float with 2 decimal places \tn % Row Count 24 (+ 2) % Row 10 \SetRowColor{LightBackground} `0\textgreater{}10.2f`\{\{nobreak\}\} & Reserves 10 spaces to the float and format with 2 decimal places \tn % Row Count 27 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{String - The format() Method}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{a = 10 \newline b = 3.5555 \newline print("The value of a is \{\} and the value of b is \{:.2f\}".format(a, b))} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Instead of using a formatted string (only available on Python 3.6 and up) you can also use the format method inserting {\bf{.format()}} at the end of the string.} \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}{String Formatting - Example}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{a = 10.12571 \newline print(f"The value of a is \{a:.2f\}") \newline \newline \# This code prints {\bf{"The value of a is 10.13"}} \newline \# Use {\bf{f}} before starting a string to make it a formatted string \newline \# Use {\bf{\{a\}}} in a formatted string to interpolate the variable {\bf{a}} in the string \newline \# Use {\bf{:.2f}} after the variable name to format it as a float with 2 decimal places} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}