Buscar

Aula 9 Programação 3

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

Continue navegando