\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{Theo666} \pdfinfo{ /Title (python-chap-15.pdf) /Creator (Cheatography) /Author (Theo666) /Subject (Python\_Chap\_15 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}{79B352} \definecolor{LightBackground}{HTML}{F6FAF4} \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\_Chap\_15 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Theo666} via \textcolor{DarkBackground}{\uline{cheatography.com/193738/cs/40722/}}} \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}Theo666 \\ \uline{cheatography.com/theo666} \\ \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 9th October, 2023.\\ 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}{PEP}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Python Enhancement Proposal (PEP)}} is a document that proposes a new feature, improvement, or change to the Python programming language. Ces règles ne sont pas obligatoires, mais elles sont fortement conseillées pour écrire du code Python de qualité. Elles facilitent la compréhension, la maintenance et la collaboration sur le code.% Row Count 7 (+ 7) } \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}{PEP257 for doctrings}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{La PEP 257 recommande d'écrire des docstrings avec des triples doubles guillemets, c'est-à-dire \newline % Row Count 2 (+ 2) """blabla""" mais pas '''blabla''' \newline % Row Count 3 (+ 1) def \seqsplit{multiplie\_nombres(nombre1}, nombre2): \newline % Row Count 4 (+ 1) """Multiplication de deux nombres entiers. \newline % Row Count 5 (+ 1) Cette fonction ne sert pas à grand chose. \newline % Row Count 6 (+ 1) Parameters \newline % Row Count 7 (+ 1) -{}-{}-{}-{}-{}-{}-{}-{}-{}- \newline % Row Count 8 (+ 1) nombre1 : int \newline % Row Count 9 (+ 1) Le premier nombre entier. \newline % Row Count 10 (+ 1) nombre2 : int \newline % Row Count 11 (+ 1) Le second nombre entier. \newline % Row Count 12 (+ 1) Avec une description plus longue. \newline % Row Count 13 (+ 1) Sur plusieurs lignes. \newline % Row Count 14 (+ 1) Returns \newline % Row Count 15 (+ 1) -{}-{}-{}-{}-{}-{}- \newline % Row Count 16 (+ 1) int \newline % Row Count 17 (+ 1) Le produit des deux nombres. \newline % Row Count 18 (+ 1) """ \newline % Row Count 19 (+ 1) \_\_authors\_\_ = ("A", "B") \newline % Row Count 20 (+ 1) \_\_version\_\_= "1.2.3" \newline % Row Count 21 (+ 1) import module ... \newline % Row Count 22 (+ 1) classes \& methods etc% Row Count 23 (+ 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}{pycodestyle \& pydocstyle \& pylint}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{pycodestyle: vérifier la conformité avec PEP 8 \newline % Row Count 2 (+ 2) \$ pycodestyle script.py \newline % Row Count 3 (+ 1) pydocstyle: vérifier la conformité avec la PEP 257 \newline % Row Count 5 (+ 2) \$ pydocstyle script.py \newline % Row Count 6 (+ 1) L'outil pylint va lui aussi vérifier une partie de ces règles mais il va également essayer de comprendre le contexte du code et proposer des éléments d'amélioration.% Row Count 10 (+ 4) } \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}{PEP8}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{indentation = 4 espaces \newline % Row Count 1 (+ 1) Import module \newline % Row Count 2 (+ 1) le chargement d'un module se fait avec l'instruction import module plutôt qu'avec from module import * \newline % Row Count 5 (+ 3) Dans un script Python, on importe en général un module par ligne. D'abord les modules internes (classés par ordre alphabétique), c'est-à-dire les modules de base de Python, puis les modules externes (ceux que vous avez installés en plus). \newline % Row Count 10 (+ 5) Si le nom du module est trop long, on peut utiliser un alias. (as) \newline % Row Count 12 (+ 2) Règles de nommage \newline % Row Count 13 (+ 1) Les modules (fichiers Python) doivent avoir des noms courts en minuscules et peuvent contenir des traits de soulignement (\_). \newline % Row Count 16 (+ 3) Les paquets (répertoires contenant des modules) doivent avoir des noms courts en minuscules, de préférence sans trait de soulignement. \newline % Row Count 19 (+ 3) Les classes doivent utiliser la convention CapWords, c'est-à-dire commencer chaque mot par une majuscule et ne pas séparer les mots par des traits de soulignement. \newline % Row Count 23 (+ 4) Les fonctions et les variables doivent utiliser la convention snake\_case, c'est-à-dire écrire les mots en minuscules et les séparer par des traits de soulignement. Par exemple, print, sum, my\_function, my\_variable. \newline % Row Count 28 (+ 5) Les constantes (variables dont la valeur ne change pas) doivent être écrites en majuscules et séparées par des traits de soulignement. Par exemple, PI, GRAVITY, MY\_CONSTANT. \newline % Row Count 32 (+ 4) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{PEP8 (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Les noms des arguments des fonctions doivent être clairs et informatifs, et éviter les abréviations ou les noms génériques comme x, y, z. Par exemple, def add(a, b): est moins clair que def add(number1, number2):. \newline % Row Count 5 (+ 5) Les noms des attributs et des méthodes d'une classe doivent suivre les mêmes conventions que les fonctions et les variables. Par exemple, class Person: name = "Alice" def greet(self): print(f"Hello, I am \{self.name\}"). \newline % Row Count 10 (+ 5) Espace \newline % Row Count 11 (+ 1) La PEP 8 recommande d'entourer les opérateurs (+, -, /, *, ==, !=, \textgreater{}=, not, in, and, or...) d'un espace avant et d'un espace après. \newline % Row Count 14 (+ 3) Il n'y a, par contre, pas d'espace à l'intérieur de crochets, d'accolades et de parenthèses \newline % Row Count 16 (+ 2) Ni juste avant la parenthèse ouvrante d'une fonction ou le crochet ouvrant d'une liste ou d'un dictionnaire \newline % Row Count 19 (+ 3) On met un espace après les caractères : et , (mais pas avant) \newline % Row Count 21 (+ 2) Par contre, pour les tranches de listes, on ne met pas d'espace autour du : \newline % Row Count 23 (+ 2) on n'ajoute pas plusieurs espaces autour du = ou des autres opérateurs pour faire joli \newline % Row Count 25 (+ 2) le caractère \textbackslash{} permet de couper des lignes trop longues. \newline % Row Count 27 (+ 2) On peut aussi utiliser les parenthèses pour évaluer un expression trop longue, par exampl, if (condition1 and condition 2):% Row Count 30 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}