commit c680d39751d3bbcfde3a819fa47bb58e9f6cfd4b Author: xaloc Date: Thu Jun 4 20:49:20 2020 +0200 primer commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e86b3ef --- /dev/null +++ b/LICENSE @@ -0,0 +1,5 @@ +"THE NON-ALCOHOLIC-BEVERAGE-WARE LICENSE": + + wrote this. As long as you retain this notice you can +do whatever you want with this stuff. If we meet some day, and you think this +stuff is worth it, you can buy me a non-alcoholic beverage in return Xaloc diff --git a/README.md b/README.md new file mode 100644 index 0000000..f968389 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Hoja explicativa de los elementos principales de python para principiantes. + +Para poder recrear el pdf se necesita la biblioteca baposter.cls y hay que tener todos los scripts de python en el mismo fichero. diff --git a/cheatsheet.pdf b/cheatsheet.pdf new file mode 100644 index 0000000..14504d2 Binary files /dev/null and b/cheatsheet.pdf differ diff --git a/cheatsheet.tex b/cheatsheet.tex new file mode 100644 index 0000000..23930e1 --- /dev/null +++ b/cheatsheet.tex @@ -0,0 +1,403 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Python Cheat Sheet +% baposter Landscape Poster +% LaTeX Template +% Version 1.0 (11/06/13) +% baposter Class Created by: +% Brian Amberg (baposter@brian-amberg.de) +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% License: +% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% Edited by Michelle Cristina de Sousa Baltazar +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------- +% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS +%---------------------------------------------------------------- + +\documentclass[landscape,a0paper,fontscale=0.285]{baposter} % Adjust the font scale/size here +\title{Python Cheat Sheet} +\usepackage[english]{babel} +\usepackage[utf8]{inputenc} +\usepackage{listings} % Package for code blocks +\lstset{language=python} +\usepackage{graphicx} % Required for including images +\graphicspath{{figures/}} % Directory in which figures are stored + +\usepackage{xcolor} +\usepackage{colortbl} +\usepackage{tabu} + +\usepackage{mathtools} +%\usepackage{amsmath} % For typesetting math +\usepackage{amssymb} % Adds new symbols to be used in math mode + +\usepackage{booktabs} % Top and bottom rules for tables +\usepackage{enumitem} % Used to reduce itemize/enumerate spacing +\usepackage{palatino} % Use the Palatino font +\usepackage[font=small,labelfont=bf]{caption} % Required for specifying captions to tables and figures + +\usepackage{multicol} % Required for multiple columns +\setlength{\columnsep}{1.5em} % Slightly increase the space between columns +\setlength{\columnseprule}{0mm} % No horizontal rule between columns + +\usepackage{tikz} % Required for flow chart +\usetikzlibrary{decorations.pathmorphing} +\usetikzlibrary{shapes,arrows} % Tikz libraries required for the flow chart in the template + +\newcommand{\compresslist}{ % Define a command to reduce spacing within itemize/enumerate environments, this is used right after \begin{itemize} or \begin{enumerate} +\setlength{\itemsep}{1pt} +\setlength{\parskip}{0pt} +\setlength{\parsep}{0pt} +} + +\definecolor{lightblue}{rgb}{0.145,0.6666,1} % Defines the color used for content box headers + +\begin{document} + +\begin{poster} +{ +headerborder=closed, % Adds a border around the header of content boxes +colspacing=0.8em, % Column spacing +bgColorOne=white, % Background color for the gradient on the left side of the poster +bgColorTwo=white, % Background color for the gradient on the right side of the poster +borderColor=violet, % Border color +headerColorOne=black, % Background color for the header in the content boxes (left side) +headerColorTwo=violet, % Background color for the header in the content boxes (right side) +headerFontColor=white, % Text color for the header text in the content boxes +boxColorOne=white, % Background color of the content boxes +textborder=roundedleft, % Format of the border around content boxes, can be: none, bars, coils, triangles, rectangle, rounded, roundedsmall, roundedright or faded +eyecatcher=true, % Set to false for ignoring the left logo in the title and move the title left +headerheight=0.1\textheight, % Height of the header +headershape=roundedright, % Specify the rounded corner in the content box headers, can be: rectangle, small-rounded, roundedright, roundedleft or rounded +headerfont=\Large\bf\textsc, % Large, bold and sans serif font in the headers of content boxes +%textfont={\setlength{\parindent}{1.5em}}, % Uncomment for paragraph indentation +linewidth=2pt % Width of the border lines around content boxes +} +%---------------------------------------------------------------- +% Title +%---------------------------------------------------------------- +{\bf\textsc{Python Cheat Sheet}\vspace{0.5em}} % Poster title +{\textsc{ P y t h o n \ \ \ \ \ C h e a t \ \ \ \ \ S h e e t \hspace{12pt}}} +{\textsc{\\ Xaloc \hspace{12pt}}} + + +%------------------------------------------------ +% Python Basics +%------------------------------------------------ +\headerbox{Python Basics:}{name=objectives,column=0,row=0}{ + +%-------------------------------------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Hints:}} +\begin{itemize}\compresslist +\item Be careful with blank spaces! They can make a big difference in the code. +\item Your code will not run without the correct indentation! +\item \# This is a comment - use it to make a one line comment or to comment out a line +\item ''''''\newline Everything in between three quote marks will be considered a comment - it can be used to make comments that span more than one line with line breaks in them \newline'''''' +\end{itemize} + + +%-------------------------------------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Numbers:}} \linebreak \linebreak +Python uses integer and float numbers. You can use the type function to check the value of an object:\\ +\begin{tabular}{l l} +\textbf{}\\ +type(3) & returns: \\ +type(3.14) & returns: \\ +\end{tabular} + +\dotfill \newline + +%-------------------------------------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Inputs:}} +%\begin{tabular}{lp{2.0cm}lp{3.0cm}|} + +\begin{tabular}{lp{5.3cm}lp{3.0cm}|} +A = input() & Waits for you to enter some characters and saves them in A\\ +\end{tabular} +\begin{tabular}{lp{4.7cm}lp{3.0cm}|} +B = int(input()) & Waits for you to enter integers and saves them in B \\ +\end{tabular} +\begin{tabular}{lp{3.0cm}lp{3.0cm}|} +input("Press ENTER") & Waits for you to press ENTER to continue - since there is no variable declared it won't save anything. \\ +\end{tabular} +\begin{tabular}{lp{2.6cm}lp{3.0cm}|} +A = input("message") & Prints "message" and waits for you to enter a value that will be saved in A\\ +\end{tabular} + + +\vspace{0.0em} % When there are two boxes, some whitespace may need to be added if the one on the right has more content +} + +%------------------------------------------------ +% Python logic +%------------------------------------------------ + +\headerbox{Basic logic in Python}{name=introduction,column=1,row=0,bottomaligned=objectives}{ + +%------IF-------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - if}} +\begin{itemize}\compresslist +\item if condition1:\\ +\text{ }\quad ........\# do something if condition1 is true \\ +elif condition2:\\ +\text{ }\quad ........\# do something if condition2 is true \\ +else:\newline +\text{ }\quad ........\# do something if both are false +\end{itemize} + + +%------WHILE-------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - while:}} +\begin{itemize}\compresslist +\item while condition:\\ +\text{ }\quad ........\# while condition is true keep doing something, make sure that the condition will be false at some point +\end{itemize} + + +%------FOR-------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - for:}} +\begin{itemize}\compresslist +\item for x in sequence\\ +\text{ }\quad ........\# for x in the given sequence\\ +\text{ }\quad ........\# do something for every item\\ +\text{ }\quad ........\# the sequence can be a list,\\ +\text{ }\quad ........\# elements from a string, etc. + +\item for x in range(10)\\ +\text{ }\quad ........\# repeat something 10 times (from 0 to 9) + +\item for x in range(5,10)\\ +\text{ }\quad ........\# repeat something 5 times (from 5 to 9) +\end{itemize} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Logic tests}} +\linebreak \\ +\begin{tabular}{l l} +10 == 10 & returns: True \\ +10 == 11 & returns: False \\ +10!= 11 & returns: True \\ +"jack" == "jack" & returns: True \\ +"jack" == "jake" & returns: False \\ +10 > 10 & returns: False \\ +10 >= 10 & returns: True \\ +"abc" \text{>=} "abc" & returns: True \\ +"abc" \text{<} "abc" & returns: False \\ +\end{tabular} +} + + +%------------------------------------------------ +% Python Lists +%------------------------------------------------ + +\headerbox{Python Lists}{name=results,column=2,span=2,row=0}{ + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Python Lists}} +\linebreak \\ +\text{Lists are made form elements of any type (they can alternate types)} \linebreak \\ +\begin{tabular}{@{}ll@{}} +\textbf{Using Lists in Python}\\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Creation} \\ +a\_list = [5,3,'p',9,'e'] & creates: [5,3,'p',9,'e'] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Accessing items} \\ +a\_list[0] & returns: 5 \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Slicing} \\ +a\_list[1:3] & returns: [3,'p'] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Length} \\ +len(a\_list) & returns: 5 \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}count( item)} \\ +\multicolumn{2}{l}{returns how many times the item was found in the list.} \\ +\text{ }\text{ }count(a\_list('p') & returns: 1 \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Sorting - sort()} \\ +a\_list.sort() & returns: [3,5,9,'e','p'] \\ +\multicolumn{2}{l}{Sorting without altering the list} \\ +print(sorted(a\_list)) & returns: [3,5,9,'e','p'] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Adding - append(item)} \\ +a\_list.append(37) & returns: [5,3,'p',9,'e',37] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Inserting - insert(position,item)} \\ +insert(a\_list.append(3),200) & returns: [5,3,200,'p',9,'e'] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Retornar e remover - pop(position)} \\ +a\_list.pop() & returns: 'e' and the list becomes [5,3,'p',9] - deletes last element \\ +a\_list.pop(1) & returns: 3 and the list becomes [5,'p',9,'e'] - deletes element 1 \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Delete - remove(item)} \\ +a\_list.remove('p') & returns: [5,3,9,'e'] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Insert} \\ +a\_list.insert(2,'z') & returns: [5,'z',3,'p',9,'e'] - insert in given position \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Invert - reverse()} \\ +reverse(a\_list) & returns: ['e',9,'p',3,5] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Concatenating} \\ +a\_list+[0] & returns: [5,3,'p',9,'e',0] \\ +a\_list+a\_list & returns: [5,3,'p',9,'e',5,3,'p',9,'e'] \\ +\multicolumn{2}{l}{\cellcolor[HTML]{ECB6F9}Find} \\ +9 in a\_list & returns: True \\ +for x in a\_list & returns the whole list, one element per line \\ +\text{ }\quad ......print(x) & +\end{tabular} +%------------------------------------------------ +} +\end{poster} +\newpage + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% SECOND PAGE %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{poster} +{ +headerborder=closed, colspacing=0.8em, bgColorOne=white, bgColorTwo=white, borderColor=violet, headerColorOne=black, headerColorTwo=violet, +headerFontColor=white, boxColorOne=white, textborder=roundedleft, eyecatcher=true, headerheight=0.1\textheight, headershape=roundedright, headerfont=\Large\bf\textsc, linewidth=2pt +} +%---------------------------------------------------------------- +% TITLE SECTION +%---------------------------------------------------------------- +{\bf\textsc{Python Cheat Sheet}\vspace{0.5em}} % Poster title +{\textsc{ P y t h o n \ \ \ \ \ C h e a t \ \ \ \ \ S h e e t \hspace{12pt}}} +{\textsc{\\ Xaloc \hspace{12pt}}} + +%---------------------------------------------------------------- +% Other Elements +%---------------------------------------------------------------- +\headerbox{Other Elements}{name=method,column=0}{ + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Key words}} +\begin{tabular}{lp{5.8cm}lp{1.0cm}} +{\bf Oper.} & {\bf Description}\\ +print & prints on the screen \\ +break & stops a loop if necessary\\ +continue & restarts loop ignoring commands below \\ +is & Tries an object identity \\ +def & Used to create a new function defined by the user \\ +return & Exit the function and returns a value \\ +global & Access variables defined globally (outside of a function) \\ +del & Deletes objects \\ +\end{tabular} + + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Libraries}} +Libraries are a collection of functions and methods that allow you to perform many actions without writing your code\linebreak \\ +\textbf{Using Libraries in Python}\\ +\begin{tabular}{lp{5.8cm}lp{1.0cm}} +import & imports a library inside a script\\ +as & gives an alias to the library \\ +from & imports a specific function from a library\\ +\end{tabular} +\linebreak +\textbf{Useful Libraries}\\ +\begin{tabular}{lp{5.8cm}lp{1.0cm}} +numpy & library for maths\\ +matplotlib & library for plotting \\ +tkinter & library to create GUI\\ +random & library for random numbers\\ +\end{tabular} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Functions}} +\begin{itemize}\compresslist +\item def f\_name(args):\\ +\text{ }\quad ........\# operations done by the function +\text{ }\quad return value\_to\_return +\end{itemize} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Dictionaries}} +A dictionary is a list of keys and values, where you can access a value by its key. All keys must be different.\\ +car = ["brand" : "Hummer",\\ +\text{ }\quad\text{ }\quad "model":"H2",\\ +\text{ }\quad\text{ }\quad "year":2009,]\\ + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Tuples}} +A tuple is a list of values separated by a comma - very similar to a list but tuples are immutable (you are not allowed to change their values):\\ +a\_tuple = ('a','b','c') +} + +%---------------------------------------------------------------- +% Operators +%---------------------------------------------------------------- +\headerbox{Python Operators}{name=results2,column=1}{ +Lets take a=10 and b=20 as example:\\ +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Arithmetic operators}} +\begin{tabular}{lll} +{\bf Op.} & {\bf Description} & {\bf Example} \\ ++ & Addition & a + b returns: 30 \\ +- & Subtraction & a - b returns: -10 \\ +* & Multiplication& a * b returns: 200 \\ +/ & Division & b / a returns: 2 \\ +\% & Module & a \% b returns: 0 \\ +** & Exponential & a**b returns: $10^{20}$ \\ +// & Euclidean Division & 9 // 2 returns: 4 +\end{tabular} + +%----Comparison operators----------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Comparison Operators}} +Basic comparation opration can be used in different ways for any type of value - numbers, strings, sequences, lists, etc. The answer will always be True or False.\\ +\begin{tabular}{lll} +{\bf Op.} & {\bf Description} & {\bf Example} \\ +< & Less than & a < b returns: True \\ +<= & Less or equal & a <= b returns: True \\ +== & Equal & a == b returns: False \\ +> & Greater than & a > b returns: False \\ +>= & Greater or equal & a >= b returns: False \\ +!= & Different & a != b returns: True +\end{tabular} + +%------Logic Operators----------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - Logic Operators}} +The logic operators {\bf and} and {\bf or} Also return a Boolean value when used in a decision structure.\\ +\begin{tabular}{lp{6.5cm}lp{1.0cm}|} +{\bf Op.} & {\bf Description}\\ +and & If the result of both sides is true, returns: True \\ +or & If one of the results on either side is true, returns: True \\ +not & It is used to invert the result of any Boolean operation. +\end{tabular} + + +%------Operations with strings---------- +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf - String Operators}} +Using a=['Hello'] and b=['Python'] +\begin{tabular}{lp{6.5cm}lp{1.0cm}lp{1.0cm}} %\begin{tabular}{lll} +{\bf Oper.} & {\bf Example} \\ ++ & a + b returns: HelloPython \\ +* & a*2 returns: HelloHello \\ +.[ ] & a[1] returns: "e" \\ +.[ : ] & a[1:4] returns: "ell" \\ +in & H in a will give 1 \\ +not in & M not in a returns: 1 \\ +\end{tabular} + +} + +%---------------------------------------------------------------- +% Examples +%---------------------------------------------------------------- +\headerbox{Examples}{name=conclusion,column=2,span=2,row=0}{ +A few examples to see how actual python code looks like. + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf Simple Hello World with print}} +\lstinputlisting{simple_hello.py} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf Hello World with function}} +\lstinputlisting{func_hello.py} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf Hello your name}} +\lstinputlisting{hello_name.py} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf Using a library}} +\lstinputlisting{library.py} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf if loop}} +\lstinputlisting{if.py} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf while loop}} +\lstinputlisting{while.py} + +\colorbox[HTML]{DA74F3}{\makebox[\textwidth-2\fboxsep][l]{\bf for loop}} +\lstinputlisting{for.py} +} + + + + + + +\end{poster} +\end{document} \ No newline at end of file diff --git a/for.py b/for.py new file mode 100644 index 0000000..c760ffd --- /dev/null +++ b/for.py @@ -0,0 +1,4 @@ +x = "hello" #stores hello in x +for c in x: #repeats loop for every character of x + print(c) #prints current character + #result: h,e,l,l,o diff --git a/func_hello.py b/func_hello.py new file mode 100644 index 0000000..50e6377 --- /dev/null +++ b/func_hello.py @@ -0,0 +1,4 @@ +def hello(): #Function definition + print("Hello World!") + +hello() #Function called and Hello World! printed diff --git a/hello_name.py b/hello_name.py new file mode 100644 index 0000000..5b4f175 --- /dev/null +++ b/hello_name.py @@ -0,0 +1,2 @@ +name = input("Enter your name:")# Asks you to enter your name +print("Hello "+name) # Prints Hello and the value in name diff --git a/if.py b/if.py new file mode 100644 index 0000000..17a5aa9 --- /dev/null +++ b/if.py @@ -0,0 +1,7 @@ +x = float(input("Enter any number:")) #Aks number and stores in x +if x > 5.3: #checks if x>5.3 + print(x, " bigger than 5.3") #only if previous condition True +elif x < 5.3: #checks if x<5.3 + print(x, " smaller than 5.3") #only if previous condition True +else: #if 1st and 2nd false + print(x, "equals 5.3") #prints equal diff --git a/library.py b/library.py new file mode 100644 index 0000000..9fa1adc --- /dev/null +++ b/library.py @@ -0,0 +1,6 @@ +import random as rand #imports library random + #sets library alias to rand +size = int(input("Enter dice size:")) #Asks for dice faces +print("You rolled a ",rand.randint(1,size)) + #Prints result of roll using randint + #from the random library diff --git a/simple_hello.py b/simple_hello.py new file mode 100644 index 0000000..875a9fa --- /dev/null +++ b/simple_hello.py @@ -0,0 +1 @@ +print("Hello World!") #prints Hello World! diff --git a/while.py b/while.py new file mode 100644 index 0000000..5b60691 --- /dev/null +++ b/while.py @@ -0,0 +1,5 @@ +x = 10 #stores 10 in x +while x>0: #if x>0 enters loop + print(x) #prints value of x + x-=1 #substracts 1 to x same as x=x-1 + #result: 10,9,8,7,6,5,4,3,2,1