Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação III Programação em python 2019 Prof. Me. ILDO RAMOS VIEIRA GRADUADO EM CIÊNCIAS DE COMPUTAÇÃO – UFC ESPECIALISTA EM SEGURANÇA DE INFORMAÇÃO - IGTI MESTRE EM CIÊNCIAS DE COMPUTAÇÃO - UFC DOUTORANDO EM ENGENHARIA DE TELEINFORMÁTICA - UFC Sobre a Disciplina OBJETIVOS Desenvolver a capacidade do aluno a entender e desenvolver programas em Pytho • Compreender e entender a linguagem Python; • Desenvolver a capacidade do aluno de escrever scripts em Python; • Desenvolver a capacidade do aluno em criar programas estruturados e orientados a objetos em Python; • Aplicar o aprendizado em várias áreas de conhecimento. Bibliografia • BARRY, Paul. Use A Cabeça ! - Python. Rio de Janeiro: Alta Books, 2013. • GRUS, Joel. Data Science do Zero: Primeiras Regras com o Python. Rio de Janeiro: Alta Books, 2016. • MENEZES, Nilo Ney Coutinho. Introdução à Programação com Python. São Paulo: Novatec, 2014. • PERKOVIC, Ljubomir. Introdução à Computação Usando Python. Um Foco no Desenvolvimento de Aplicações. 1. ed. Rio de Janeiro: LTC, 2016 Intrdução aos gráficos usando Python Para a geração de gráficos é necessário importar o módulo matplotlib.pyplot. Esse módulo contém uma coleção de comandos para criar, alterar e configurar um gráfico dentro de uma, ou mais, novas janelas do sistema operacional. ❏ Para testar a instalação do matplotlib digite, dentro do terminal do Python: Intrdução aos gráficos usando Python ❏ Após o comando plt.plot(...), o gráfico não aparece, entretanto ele é gerado na memória do computador. ❏ A mensagem [<matplotlib.lines.Line2D object at 0x8fd48ac>] indica que o gráfico foi criado. ❏ O comando plt.ylabel(...) coloca o nome no eixo y. A letra u antes da string indica que a string está em unicode. Essa indicação é necessária para que as letras acentuadas sejam escritas corretamente. ❏ O gráfico só será mostrado na tela quando o comando plt.show() for dado. ❏ Normalmente esse comando é colocado como o último comando do gráfico. Mesmo depois que o gráfico é mostrado na tela ele pode ser alterado, isto é, podem existir comandos que alteram o gráfico depois que o gráfico é mostrado. Intrdução aos gráficos usando Python Para a geração de gráficos é necessário importar o módulo matplotlib.pyplot. Esse módulo contém uma coleção de comandos para criar, alterar e configurar um gráfico dentro de uma, ou mais, novas janelas do sistema operacional. ❏ Para testar a instalação do matplotlib digite, dentro do terminal do Python: Intrdução aos gráficos usando Python Para a geração de gráficos é necessário importar o módulo matplotlib.pyplot. Esse módulo contém uma coleção de comandos para criar, alterar e configurar um gráfico dentro de uma, ou mais, novas janelas do sistema operacional. ❏ Para testar a instalação do matplotlib digite, dentro do terminal do Python: Tabelas de Cores Cor Caractere Azul ‘b’ Verde ‘g’ Vermelho ‘r’ Ciano ‘c’ Magenta ‘m’ Amarelo ‘y’ Preto ‘k’ Branco ‘w’ Tipo da Linha Caractere Linha cheia ‘-’ Linha tracejada ‘- -’ Linha traço-ponto ‘-.’ Linha pontilhada ‘:’ Tabelas de Marcadores Tipo da Marcador Caractere Ponto ‘.’ Pixel ‘,’ Circulo ‘-.’ Linha pontilhada ‘:’ Manipulando Grafico ❖ O comando plt.axis(...) especifica os limites superior e inferior de cada eixo. ❖ Os primeiros dois números referem-se aos limites do eixo x e os outros dois aos limites do eixo y ❖ Para desenhar mais de uma linha em um mesmo gráfico usa-se mais de um comando plt.plot(...). Cada um contendo a lista de coordenadas x, coordenadas y, e sua string de formatação. O exemplo a seguir ilustra um gráfico com três curvas. Manipulando Grafico ❖ >>> import matplotlib.pyplot as plt ❖ >>> import numpy as np ❖ >>> x = np.linspace(0,1,num=100) ❖ >>> y = x ❖ >>> plt.plot(x,y,'r--') ❖ >>> z = [t**2 for t in x] ❖ >>> plt.plot(x,z,'bo') ❖ >>> w = [t**3 for t in x] ❖ >>> plt.plot(x,w,'g^') ❖ >>> plt.show() Manipulando Grafico ❖ >>> import matplotlib.pyplot as plt ❖ >>> import numpy as np ❖ >>> x = np.linspace(0,1,num=100) ❖ >>> y = x ❖ >>> z = [t**2 for t in x] ❖ >>> w = [t**3 for t in x] ❖ >>> plt.plot(x,y,'r--',x,z,'bs',x,w,'g^') ❖ >>> plt.show() ❖ lternativamente pode-se usar apenas um comando plt.plot(...) onde se colocam os trios :coordenadas x, coordenadas y e string de formatação, para cada gráfico consecutivamente. ❖ O exemplo a esquerda ilustra o mesmo gráfico anterior mas com um único comando plt.plot(...). ❖ Quando um gráfico é desenhado, o comando plt.plot(...) automaticamente determina que a escala de cada coordenada varie do menor valor até o maior valor. ❖ Entretanto, muitas vezes deseja-se alterar esses valores, por exemplo deseja-se que a escala de x varie de zero até o valor máximo, e não do valor mínimo ao máximo. Para especificar novos valores usa-se o comando plt.axis(...). ❖ Esse comando possui um argumento, que é uma tupla. Essa tupla deve conter quatro valores referentes ao x mínimo, x máximo, y mínimo e y máximo que se deseja usar ➢ Por exemplo, para especificar que o eixo x varia de 0 a 1 enquanto o eixo y varia ➢ de 0 a 10, a instrução é: ❖ Os parêntesis duplos são necessários porque o comando plt.axis(...) exige uma tupla (ou lista) como argumento. ❖ Alternativamente, para configurar os limites dos eixos x e y separadamente usam-se os comandos plt.xlim(...) e plt.ylim(...) respectivamente, com os limites superior e inferior como argumentos. Assim o exemplo anterior é equivalente a: Computação Científica com Python Computação Científica com Python ❖ Gerar dados (simulação, experimentos) ❖ Manipular e processar os dados ❖ Visualizar os resultados ○ Para entender, interpretar e validar o queestamos fazendo ❖ Comunicar os resultados ○ Produzir figuras para relatórios e publicações ○ Apresentações ❖ Objetivo: apresentar os elementos básicos dalinguagem Python para escrever programas parasolução computacional de problemas científicos,manipular, processar e visualizar os dados. O que é NumPy? ❖ Numerical Python ❖ Biblioteca para manipulação de arrays multidimensionais e matrizes. ❖ Operações rápidas em arrays (funçõesvetorizadas) ❖ Diferença com relação a listas tradicionais do Python ➢ Vetor homogêneo ➢ Muito mais eficientes do que as listas ➢ Número de elemento deve ser conhecido a priori. O array pode ser redimensionado posteriormente. ➢ Muito eficiente (implementado em C) Python puro VS NumPy #Python puro import timel = 10000000 start = time.time() a, b =range(l),range(l) c = [] for i in a: c.append(a[i]*b[i]) t = time.time() - start print("Tempo:%s"% t) #NumPy import time import numpy as np l = 10000000 start = time.time() a = np.arange(l) b = np.arange(l) c = a*b t = time.time() - start print("Tempo:%s"% t) Criando Vetores NumPy ● Arrays NumPy podem ser criados a partir deestruturas de dados do Python (listas, tuplas)ou a partir de funções específicas para criaçãode arrays. zeros((M,N)) ones((M,N)) empty((M,N)) vetor com zeros, M linhas, N colunas vetor com uns, M linhas, N colunas vetor vazio, M linhas, N colunas zeros_like(A) ones_like(A) empty_like(A) vetor com zeros, mesmo formato de A vetor com uns, mesmo formato de A vetor vazio, mesmo formato de A random.random((M,N)) identity(N) array([[1.5,2,3],[4,5,6]]) vetor com numeros aleatorios, MxN matriz identidade NxN, ponto flutuante cria a partir de lista ou tupla arange(I, F, P) linspace(I, F, N) vetor com inicio I, fim F, passo P vetor com N números de I até F Criando Vetores NumPy >>> import numpy as np >>> a = np.array( [36.4, 21.6, 15.6, 27.5] ) >>> a array([ 36.4, 21.6,15.6, 27.5]) >>> az = np.zeros(4) >>> az array([ 0., 0., 0., 0.]) >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> a = np.arange(0.0, 1.0, 0.2) >>> a array([ 0. , 0.2, 0.4, 0.6, 0.8]) Vectorization ❖ Aplicar f diretamente em todo o vetor ❖ Muito mais eficiente ❖ Mais compacto e fácil de ler ❖ Nem todas funções def func(x) estão prontas para serem usadas ❖ desta forma Alguns métodos dos vetores a.sum() a.min() a.max() a.mean() a.std() a.var() a.trace() soma todos elementos menor elemento maior elemento média aritmética desvio padrão variância traço a.copy() a.conjugate() retorna cópia complexo conjugado Curvas Curvas Exercício 1 1) Desenvolva um algoritmo que escreve em disco um arquivo com números ordenados crescentemente de 1 a 100. Cada número deve ser separado por “;”. O arquivo deve se chamar “crescente.txt”. 2) Desenvolva um algoritmo que escreve em disco um arquivo com números ordenados decrescentemente de 100 a 1. Cada número deve estar em uma linha. O arquivo deve se chamar “decrescente.txt”. Exercício 2 1) Desenvolva um programa que cadastra alunos: ❖ O programa deve registrar nome, email e curso do aluno. ❖ Cada novo registro deve ser armazenado em arquivo. ❖ O usuário deve ter as seguintes opções: ➢ Cadastrar novo aluno; ➢ Listar alunos cadastrados; ➢ Buscar aluno; ➢ Remover aluno
Compartilhar