Dissertation PYTHON
\begin
Discover why 18 million people worldwide trust Overleaf with their work.
\begin
Discover why 18 million people worldwide trust Overleaf with their work.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DISSERTAÇÃO PROFMAT
%
% Created by Michelle Cristina de Sousa Baltazar
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Dissertation PYTHON}
\documentclass[12pt, a4paper,oneside]{book}
% margens segundo abnt
\usepackage[top=3cm,left=3cm,right=2cm,bottom=2cm]{geometry}
% espaçamento entre linhas
\linespread{1.3}
% espacamento entre parágrafos
\setlength{\parindent}{1.25cm}
% colocar parágrafo no começo das seções
\usepackage{indentfirst}
% para subitem
\usepackage{enumitem}
% para sub sub item
\usepackage{outlines}
% bibliografia e estilo
\usepackage[round]{natbib}
\bibliographystyle{apa}
% insere paginas em pdf (usar para inserir a ficha)
\usepackage{pdfpages}
% retira primeira página do capítulo
\usepackage{etoolbox}
\patchcmd{\chapter}{plain}{empty}{}{}
\patchcmd{\part}{plain}{empty}{}{}
% tira a palavra capitulo dos capitulos (ABNT)
\usepackage{titlesec}
\titleformat{\chapter}{\huge\bf}{\thechapter}{20pt}{\huge\bf}
%\documentclass{article}
\usepackage[brazilian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{parskip} % inserir linhas entre paragrafos
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{graphicx} % Required for including images
\graphicspath{{figures/}} % Directory in which figures are stored
\newcommand{\compresslist}{
\setlength{\itemsep}{1pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{tabularx}{\textwidth}{X X}
\textbf{PYTHON} & \multirow{3}{*}{\includegraphics[width=85mm]{python_logo1.png}}\\
\\
\textbf{Python} é uma linguagem de programação de \textit{alto nível}, \textit{interpretada}, de \textit{script}, \textit{imperativa}, \textit{orientada a objetos}, \textit{funcional}, de \textit{tipagem dinâmica e forte}.\\
A linguagem foi projetada com a filosofia de enfatizar a importância do esforço do programador sobre o esforço computacional. Prioriza a legibilidade do código sobre a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padrão.\\
\end{tabularx}
\\
\\
\\
Abaixo iremos pormenorizar cada um de seus atributos:
\begin{itemize}\compresslist
\item\textbf{Linguagem Interpretada} – é uma linguagem de programação em que o código fonte nessa linguagem é executado por um programa de computador chamado interpretador e em seguida é executado pelo sistema operacional ou processador. \\
Ou seja, de uma forma ela é semelhante à linguagem HTML que é interpretada no navegador do usuário no ato do acesso.
\item\textbf{Linguagem de Script} – é uma linguagem que é executada no interior de programas ou de outras linguagem de programação, não se restringindo a estes ambientes. \\
Ou seja, podem estender as funcionalidades de um programa sem contudo alterá-lo e/ou controla-lo.
\item\textbf{Linguagem Imperativa} – que descreve o programa como um conjunto de ações, enunciados ou comandos que mudam o estado de um programa dizendo a cada passo o que deve ser executado ou interpretado. \\
Ou seja, está relacionado ao tempo verbal imperativo, onde o programador diz ao computador “faça isso, depois isso, depois aquilo”.
\item\textbf{Orientada a Objetos} – é um modelo de análise, projeto e programação baseado na composição e interação entre diversas unidades chamadas de objetos. \\
Os objetos são partes de código independentes e funcionais que podem ser aproveitadas conforme o desejo e necessidade do programador. Depois de definidos, implementa-se um conjunto de classes que definem os objetos presentes no sistema e cada classe determina o comportamento e estados possíveis de seus objetos assim como o relacionamento com outros objetos.
\item\textbf{Programação Funcional} – é uma abordagem de programação que enfatiza a aplicação de funções. A ideia básica é utilizar-se de funções predefinidas que evitam estados ou dados mutáveis. No caso de Python, as inúmeras funções preexistentes auxiliam desde a simples formatação de texto até a resolução de cálculos, concatenação de valores e até operações com arquivos. \\
Este tipo de abordagem contrasta em parte com a programação imperativa que, além das funções, já possui construções mais complexas. Desta forma, Python não é considerada estritamente funcional, pois além de funções utilizadas no ato da interpretação, também se utiliza dessas construções imperativas.
\item\textbf{Tipo forte} – Linguagem implementadas com tipificação forte exigem que o tipo de dado de um valor seja do mesmo tipo da variável ao qual este valor será atribuído. Ou seja, se declararmos uma variável como inteira, somente será aceita a entrada de valores inteiros para esta variável.
\item\textbf{Tipo Dinâmico} – A verificação de um dado é feita de forma dinâmica, ou seja, em tempo de execução – característica de uma linguagem interpretada.
\end{itemize}
.\\
\textbf{Construções} \\
\\
\textbf{Construções em Python incluem:}
\begin{itemize}\compresslist
\item Estrutura de seleção (\textit{If, else elif})
\item Estrutura de repetição (\textit{for, while})
\item Construção de classes (\textit{class})
\item Construção de sub-rotinas (\textit{def})
\item Construção de escopo (\textit{with})
\end{itemize}
.\\
\textbf{Tipos de dado} \\
\\
A tipagem de Python é forte, pois os valores e objetos têm tipos bem definidos e não sofrem coerções como em outras linguagens. São disponibilizados diversos tipos de dados nativos:
\begin{itemize}\compresslist
\item \textit{str, unicode} – uma cadeia de caracteres imutável
\item \textit{list} – lista heterogênea mutável
\item \textit{tuple} – tupla imutável (lista ordenada de n elementos)
\item \textit{set, frozenset} – conjunto não ordenado, não contem elementos duplicados
\item \textit{dic}t – conjunto associativo
\item \textit{int} – número de precisão fixa
\item \textit{float} – ponto flutuante
\item \textit{complex} – número complexo
\item \textit{bool} – booleano (1 ou 0, verdadeiro ou falso)
\end{itemize}
Python também permite a definição dos tipos de dados próprios através de classes. \\
\\
\textbf{Palavras Reservadas} \\
\\
O Python 2.5.2 define as seguintes 31 palavras reservadas, que não podem ser utilizadas como um identificador por fazerem parte da gramática da linguagem: \\
\\
\textit{
\begin{tabularx}{\textwidth}{X X X X}
in & def & assert & raise \\
is & not & global & continue \\
if & del & break & lambda \\
as & and & from & return \\
or & else & exec & finally \\
try & pass & yield & except \\
elif & with & class & import \\
for & while & print & \\
\end{tabularx}
}
\\
Tela do compilador Python Spyder do Anaconda:\\
\\
\includegraphics[width=\textwidth]{python_tela_anaconda_spyder.PNG}
%-----------------------------------------%
\pagebreak
\textbf{MATPLOTLIB} \\
\\
\textbf{Matplotlib} é uma biblioteca de plotagem 2D, ou seja é uma coleção de sub-rotinas e funções utilizadas em \textbf{Python} no desenvolvimento de gráficos em duas dimensões. Essa biblioteca consegue gerar figuras de qualidade em uma grande variedade de formatos e de ambientes interativos em diversas plataformas.\\
\\
O objetivo da biblioteca é tornar fácil as tarefas rotineiras e tornar possíveis as tarefas mais difíceis. Ela permite gerar inúmeros modelos computacionais com apenas algumas linhas de código. Sua interface é simples e semelhante ao Matlab.\\
\\
Segue a seguir alguns exemplos de plotagem geradas em \textbf{matplotlib}.
\begin{tabularx}{\textwidth}{X | X}
%---- linha 1-----%
Plotagem simples: & Plotagem com múltiplos eixos gerado pelo comando subplot():\\
\includegraphics[width=75mm]{matplotlib1_simple_plot1.png} & \includegraphics[width=75mm]{matplotlib2_subplot_demo3.png} \\
& \\ %---- linha 2-----%
Plotagem de histograma (distribuição de frequência) gerada com o comando \textit{hist()}: & Gráficos 3D simples utilizando a ferramenta \textit{mplot3d}:\\
\includegraphics[width=75mm]{matplotlib3_histogram_demo_features2.png} & \includegraphics[width=80mm]{matplotlib5_surface3d_demo4.png}\\
\end{tabularx}
\begin{tabularx}{\textwidth}{X | X}
%---- linha 4-----%
Gráficos em barras – que são facilmente gerados com o comando \textit{bar()}: & Gráficos em pizza (ou torta) – gerados facilmente com o comando \textit{pie()}:\\
\includegraphics[width=75mm]{matplotlib8_barchart_demo3.png} & \includegraphics[width=80mm]{matplotlib9_pie_demo_features_001.png}\\
& \\ %---- linha 5-----%
Gráficos com tabelas – gerados com o comando \textit{table()}: & Gráfico de dispersão, gerado com o comando \textit{scatter()}:\\
\includegraphics[width=80mm]{matplotlib10_table_demo1.png} & \includegraphics[width=80mm]{matplotlib11_scatter_demo21.png}\\
& \\ %---- linha 6-----%
Plotagem de curvas e polígonos preenchidos com o comando \textit{fill()}: & Plotagem de dados de data com intervalos maiores ou menores:\\
\includegraphics[width=80mm]{matplotlib13_fill_demo2.png} & \includegraphics[width=80mm]{matplotlib14_date_demo3.png}\\
\end{tabularx}
\begin{tabularx}{\textwidth}{X | X}
%---- linha 3-----%
Linha de corrente gerada com o comando \textit{streamplot()}: & Elipses: \\
\includegraphics[width=80mm]{matplotlib6_streamplot_demo_features_001.png} & \includegraphics[width=80mm]{matplotlib7_ellipse_demo1.png} \\
& \\ %---- linha 7-----%
Gráficos financeiros: & Funções simples para criação de plotagens logarítmicas – \textit{semilogx(), semilogy() e loglog()}:\\
\includegraphics[width=75mm]{matplotlib15_finance_work21.png} & \includegraphics[width=80mm]{matplotlib17_log_demo2.png}\\
& \\ %---- linha 8-----%
Gráficos polares com o comando \textit{polar()}: & Comando \textit{legend()} para gerar automaticamente legendas:\\
\includegraphics[width=80mm]{matplotlib18_polar_demo1.png} & \includegraphics[width=80mm]{matplotlib19_legend_demo6.png}\\
\end{tabularx}
%-----------------------------------------%
\pagebreak
\textbf{MATH}\\
\\
Este módulo está sempre disponível e provê acesso às funções matemáticas definidas pela \textit{linguagem C}.\\
As funções são:
\begin{itemize}\compresslist
\item Funções da Teoria dos Números e de Representação
\item Funções de Potência e Logarítmicas
\item Funções Trigonométricas
\item Conversão Angular
\item Funções Hiperbolicas
\item Além de Funções Especiais e Constantes
\end{itemize}
Em Python estas funções não utilizarão números complexos. Neste caso utilizaremos as mesmas funções porém na biblioteca \textit{cmath}.\\
\end{document}