Buscar

Aula05 Vetores e Strings Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução à Computação com Python
Aula 05 – Vetores e Strings
CNCCC 2016
Conteúdo – Vetores
Introdução a vetores
Inicialização de vetores
Operações com vetores
Gráficos
2
Conteúdo – Strings
Introdução a strings
Operações com strings
Funções “is” para strings
Conversão de strings para números
Alguns problemas
Conteúdo – Vetores
Introdução a vetores
Inicialização de vetores
Operações com vetores
Gráficos
4
Vetores
 Em muitos programas, 
precisamos manipular 
um grande número de 
valores:
 Folha de pagamento
 Medições ao longo do 
tempo
 Um vetor é um 
conjunto de dados
organizados em 
ordem sequencial.
5
Vetores
 Vetores são posições da memória:
 identificadas por um único nome
 individualizadas por índices
 com conteúdo de um mesmo tipo
6.1 2.3 9.4 5.1 8.9 9.8 10 7.0 6.3 4.4
0 1 2 3 4 5 6 7 8 9
Notas:
Posição:
6
Vetores em Python
 Para a manipulação de vetores, utilizar o módulo 
(biblioteca) numpy
from numpy import *
 NumPy é o pacote essencial para computação 
científica com Python.
 Para maiores informações: www.numpy.org
 Para funções de criação e manipulação de vetores:
 docs.scipy.org/doc/numpy/reference/
7
vetor = linspace(10, 19, 10, dtype=int)
Índices:
10
0
11
1
12
2
13
3
14
4
...
...
19
9
vetor
Índice do primeiro elemento: 0
Índice do último elemento: 9
Quantidade de elementos: 10
Vetores em Python
8
 Retorna um vetor com 10 valores igualmente 
espaçados dentro de um determinado intervalo.
 Índices fora dos limites causam erro.
 Índices podem ser negativos, permitindo o acesso na 
ordem inversa.
Vetores em Python
vetor = array([3, 6, 9, 12, 15, 18])
vetor[0] # O primeiro elemento da lista: 3
vetor[-1] # O ultimo elemento da lista: 18
vetor[6] # ERRO
3 6 9 12 15 18
0 1 2 3 4 5
vetor
-6 -5 -4 -3 -2 -1
9
Vetores em Python
:: Atribuição de valores
 Exemplos:
<nome_vetor> = array([<valor1>, <valor2>, <valor3>,...])
array1 = array([1, 2 , 3 , 4])
array2 = array([1, 2, 3, 4])
notas = array([10, 9.5, 5, 7.75, 10])
vazio = array([])
10
Operações com Vetores
:: Selecionando parte de um vetor
Código Objetivo
vec[i]
Seleciona o elemento de índice i do 
vetor vec
vec[i:j]
Seleciona os elementos do vetor vec
cujos índices estão compreendidos 
entre i e j-1
vec[i:]
Seleciona os elementos do vetor vec
do índice i até o final do vetor. 
11
Conteúdo – Vetores
Introdução a vetores
Inicialização de vetores
Operações com vetores
Gráficos
12
Vetores em Python
:: Inicialização de valores
 Podemos iniciar um vetor apenas com 0s:
 Ou apenas com 1s:
>> vet1 = zeros(5, dtype=int)
>> vet1
array([0, 0, 0, 0, 0])
>> vet2 = ones(5, dtype=int)
>> vet2
array([1, 1, 1, 1, 1])
13
Vetores em Python
:: Inicialização de valores
 Colocar os números de 10 a 15 em um vetor:
 Colocar os números de 5 a 1 em um vetor:
 Cinco valores linearmente espaçados entre 3 e 15:
vetor = linspace(5, 1, 5, dtype=int)
vetor = linspace(10, 15, 6, dtype=int)
vetor = linspace(3, 15, 5, dtype=int)
14
 Os elementos de um vetor podem ser lidos a partir 
de uma das seguintes fontes:
 Corpo do script
 Teclado
 Arquivo (mais tarde)
Vetores em Python
:: Inicialização de valores
v = array(eval(input("Informe o vetor: ")))
v = [11, 22, 33, 44, 55]
Informe os elementos do vetor 
separando-os por vírgula
15
Elementos do vetor devem 
ser separados por vírgula
Conteúdo – Vetores
Introdução a vetores
Inicialização de vetores
Operações com vetores
Gráficos
16
Operações com Vetores
:: Concatenação
 Para concatenar (unir) dois ou mais vetores em um 
só, relacione-os entre colchetes:
 Também funciona com números:
<novo_vetor> = [vetor1, vetor2, vetor3,...]
<novo_vetor> = [vetor1, 4, -7, 0,...]
17
Operações com Vetores
:: Mínimo, Máximo, Tamanho, Soma
 Encontrar o menor elemento de um vetor:
 Encontrar o maior elemento de um vetor:
 Encontrar o tamanho de um vetor:
 Encontrar a soma dos elementos de um vetor:
>> min(vetor)
>> max(vetor)
>> size(vetor)
>> sum(vetor)
18
Operações com Vetores
:: Busca
 Problema de busca
 Dado um vetor v, e um valor x, encontrar um índice k 
tal que v[k] == x.
0 n-1
456 222 555 111 333 111 ... 777
x v
i = 0
while (i < size(v)):
if (v[i] == x):
n = i
i = i + 1
19
Operações com Vetores
:: Busca
from numpy import *
# Leitura do vetor
v = array(eval(input("Informe o vetor: ")))
# Leitura do valor a ser encontrado
x = int(input("Informe o valor a ser encontrado: "))
i = 0
n = -1 # indica que elemento não foi encontrado
while (i < size(v)):
if (v[i] == x):
n = i
i = i + 1
if (n == -1):
print("O valor não foi encontrado no vetor")
else:
print("O valor foi encontrado na posicao", n)
20
Operações com Vetores
:: Média
 Calcular a média dos elementos de um vetor.
8 4 2 6
(0) (1) (2) (3)
soma = 0
n = 0
8 4 2 6
(0) (1) (2) (3)
soma = 8
n = 1
8 4 2 6
(0) (1) (2) (3)
soma = 12
n = 2
8 4 2 6
(0) (1) (2) (3)
soma = 20
n = 4
...
media = soma/n
21
Operações com Vetores
:: Média
from numpy import *
# Leitura do vetor
v = array(eval(input("Informe o vetor: ")))
i = 0 # variavel contadora
soma = 0 # variavel acumuladora
while (i < size(v)):
soma = soma + v[i]
i = i + 1
print("A media é:", round(soma/size(v)),2)
22
Exemplos
:: Média ponderada
 Calcule o coeficiente de 
rendimento de um aluno de 
graduação, que é baseado na 
média ponderada entre as 
notas de cada disciplina e seus
respectivos números de 
créditos.
 Escreva um script que leia as 
notas e os créditos e armazene 
em vetores distintos e, ao final, 
exiba o coeficiente do aluno na 
tela.
Exemplo
Definir entradas e saídas
Grandeza Unidade de medida Faixa de valores
Entradas
Saídas
Grandeza Unidade de medida Faixa de valores
Entradas
Notas --- [0, 10]
Créditos --- [0, 10]
Saídas Coeficiente --- [0, 10]
Exemplo
Projetar algoritmo
 Leitura dos vetores Notas e Creditos
 Qual a condição para repetição?
 Enquanto o contador não atingir o número de notas
0 1 2 3 4 5 6 7 8 9
6.1 2.3 9.4 5.1 8.9 9.8 10 7.0 6.3 4.4Notas
Posição:
4 3 4 4 4 3 6 2 6 4Creditos
Coeficiente: 7.09
Problema 3
Codificar em Python
from numpy import *
# Leitura do vetor notas
n = array(eval(input("Informe as notas: ")))
# Leitura do vetor créditos
c = array(eval(input("Informe os créditos: ")))
i = 0 # Variavel contadora
soma_acum = 0 # Variavel acumuladora soma das notas
soma_c = 0 # Variavel acumuladora dos créditos
while (i < size(n)):
soma_acum = soma_acum + n[i] * c[i]
soma_c = soma_c + c[i]
i = i + 1
coeficiente = soma_acum/soma_c
print(round(coeficiente,2))
Conteúdo – Vetores
Introdução a vetores
Inicialização de vetores
Operações com vetores
Gráficos
27
Gráficos em Python
 Para apresentar dados de forma gráfica, utilizar o 
framework matplotlib.pyplot
from matplotlib.pyplot import *
 matplotlib.pyplot é uma coleção de 
funções que fazem o matplotlib funcionar
como o MATLAB
 Para maiores informações:
 matplotlib.org/api/pyplot_api.html
 matplotlib.org/users/pyplot_tutorial.html
28
Gráficos em Python
 Desenhar o gráfico da função y = x2 – 10x + 15 para 
valores de x entre 0 e 10.
1. Definir um polinômio a partir do vetor de 
coeficientes.
2. Criar um vetor de valores de x entre 0 e 10.
3. Calcular o valor do polinômio em cadaponto x.
4. Desenhar o gráfico.
29
Gráficos em Python
Função Objetivo
poly1d(vet)
Define um polinômio a partir de um 
vetor vet contendo seus coeficientes
roots(p)
Determina as raízes de um polinômio p. 
A saída desta função também é um 
vetor.
polyval(p, x)
Calcula o valor de um polinômio p no 
ponto x.
polyder(p)
Determina a 1ª derivada de um 
polinômio p.
30
Gráficos em Python
from numpy import *
from matplotlib.pyplot import *
# Cria polinomio a partir do vetor de coeficientes
poli = poly1d([1,-10,15])
# Cria um vetor de 10 valores para x
x = linspace(0, 10, 10)
# Calcula o valor do polinômio para o vetor x
y = polyval(poli, x)
# Abre uma figura
figure()
31
Gráficos em Python
# Plota o polinomio V(x) em funcao de x
plot(x, y)
# Especifica os limites do eixo Y exibidos na tela
ylim(-10,15) 
# Poe um nome no eixo X
xlabel("x", fontsize='large')
# Poe um nome no eixo Y
ylabel("y", fontsize='large')
# Exibe linhas de grade
grid(True)
32
Gráficos em Python
33
Gráficos em Python
 Gráficos podem ser salvos como figura
 Podem ser adicionados:
 Linhas de grade
 Título do gráfico
 Rótulos para os eixos
 etc.
title("Plot de x^2 - 10*x + 15")
xlabel("eixo x")
ylabel("eixo y")
grid(True)
savefig("polinomio.png")
34
Conteúdo – Strings
Introdução a strings
Operações com strings
Funções “is” para strings
Conversão de strings para números
Alguns problemas
Strings de caracteres
 Uma string (= corda) é uma cadeia de caracteres.
 Uma cadeia de caracteres é um sequência de 
símbolos, tais como letras, números, sinais de 
pontuação, etc., que formam textos em geral.
A
m o
o
P y
t h
o n
Strings de caracteres
 O início e o fim de uma string são indicados por 
aspas duplas (") ou aspas simples ('), de modo a 
separar o conteúdo da string do restante do texto 
do programa.
 Você pode usar espaços em uma string de 
caracteres.
texto = "Amo o Python"
texto = 'Amo o Python'
Strings de caracteres
 Se você quiser incluir o símbolo de aspas em uma 
string, use a expressão \".
>> texto2 = "Amo o \"Python\"."
>> texto2
Amo o "Python".
Strings de caracteres
 Os caracteres de uma string são codificados no 
padrão ASCII.
 Cada caractere do teclado é representado por um 
código numérico.
Mostra código ASCII do 
caractere informadoord()
Mostra caractere ASCII 
correspondente ao código 
informado
chr()
Tabela ASCII
0 1 2 3 4 5 6 7 8 9
0 nul soh stx etx eot enq ack bel bs ht
1 nl vt ff cr so si dle dc1 dc2 dc3
2 dc4 nak syn etb cam em sub esc fs gs
3 rs us sp ! " # $ % & ´
4 ( ) * + , - . / 0 1
5 2 3 4 5 6 7 8 9 : ;
6 < = > ? @ A B C D E
7 F G H I J K L M N O
8 P Q R S T U V W X Y
9 Z [ \ ] ^ _ ` a b c
10 d e f g h i j k l m
11 n o p q r s t u v w
12 x y z { | } ~ del
Acesso a caracteres
 Strings são indexadas e o primeiro caractere é o de 
índice 0
str1 = 'Python'
str1[0] # primeiro caractere: 'P'
str1[5] # ultimo caractere: 'n'
str1[6] # ERRO
P y t h o n
0 1 2 3 4 5
str1 Não usar str como 
identificador, pois é 
uma classe nativa
Acesso a caracteres
 Índices também podem ser números negativos
P y t h o n
0 1 2 3 4 5
str1
-6 -5 -4 -3 -2 -1
str1[-1] # ultimo caractere: 'n'
str1[-2] # penultimo caractere: 'o'
str1[-6] # primeiro caractere : 'P'
str1[-7] # ERRO
Acesso a partes da string
# carac. da posição 0 a 1: 'Py'
str1[0:2]
# carac. da posição inicial até a 1:'Py'
str1[:2]
# carac. da posição 2 a 5: 'thon'
str1[2:6]
# carac. da posição 2 até o final: 'thon'
str1[2:]
P y t h o n
0 1 2 3 4 5
str1
-6 -5 -4 -3 -2 -1
Conteúdo – Strings
Introdução a strings
Operações com strings
Funções “is” para strings
Conversão de strings para números
Alguns problemas
Operações com strings
:: Tamanho, Primeiro, Último
 Quantidade de caracteres da string
 Primeiro caractere da string
 Último caractere da string
>> len(string)
>> string[0]
>> string[-1]
Operações com strings
:: Conversão maiúsculas/minúsculas
 As funções upper e lower convertem todos os 
caracteres alfabéticos de uma string em letras 
maiúsculas ou minúsculas, respectivamente.
str1 = 'Isso é um teste!'
str1.upper() # ISSO É UM TESTE!
str1.lower() # isso é um teste!
Operações com strings
:: Concatenação de strings
 Para a concatenação de duas ou mais strings, utilize 
o operador +.
primeira = 'Auto'
ultima = 'escola'
primeira + ultima # 'Autoescola'
primeira + ' ' + ultima # 'Auto escola'
Operações com strings
:: Cópias repetidas de strings
 Caso queira concatenar cópias repetidas de strings, 
utilize o operador *.
str1 = 'UFAM'
str1 * 3 # 'UFAMUFAMUFAM'
(str1 + ' ') * 3 # 'UFAM UFAM UFAM '
3 * str1 # 'UFAMUFAMUFAM'
3 * (str1 + ' ') # 'UFAM UFAM UFAM '
Operações com strings
:: Separação de strings
 A função split retorna os caracteres antes da 
primeira ocorrência de um caractere separador em 
uma string de entrada.
 O caractere separador default é o espaço em branco.
str1 = 'Fulano de Tal'
str1.split() # ['Fulano', 'de', 'Tal']
str1.split(' ') # ['Fulano', 'de', 'Tal']
str1.split(',') # ['Fulano de Tal']
'1,2,3'.split(',') # ['1', '2', '3']
Operações com strings
:: Busca de strings
 A função find retorna o menor índice da ocorrência 
da string2 na string1.
 Para checar se a string2 está na string1, utilize o 
operador in.
str1 = 'Fulano de Tal'
str2 = 'de'
str1.find(str2) # 7
'de' in 'Fulano de Tal' # True
Operações com strings
:: Substituição de strings
 A função replace realiza uma operação padrão 
de localizar e substituir.
 Retorna uma cópia da string1 com todas as 
ocorrências da string2 substituídas pela string3.
str1 = 'Na minha família há vários 
médicos. Meu avô, meu pai, minha mãe e eu 
somos médicos.'
str2 = 'médicos'
str3 = 'engenheiros'
str1.replace(str2,str3)
Conteúdo – Strings
Introdução a strings
Operações com strings
Funções “is” para strings
Conversão de strings para números
Alguns problemas
Testes Lógicos sobre Strings
 O Python oferece diversas funções cujo nome 
começa com “is”.
 Todas elas retornam um dos seguintes valores 
lógicos:
•VerdadeiroTrue
•FalsoFalse
Testes Lógicos sobre Strings
:: Exemplos de funções
 Função isalpha()
Verifica se todos os caracteres na string são letras
do alfabeto.
 Função isnumeric()
Verifica se todos os caracteres na string são
numéricos.
 Função isalnum()
Verifica se todos os caracteres na string são
alfanuméricos.
Testes Lógicos sobre Strings
:: Exemplos de funções
str1 = 'Fulano'
str2 = '123'
str3 = str1 + str2
str1.isalpha() # True
str3.isalpha() # False
str2.isnumeric() # True
str3.isnumeric() # False
str1.isalnum() # True
str2.isalnum() # True
str3.isalnum() # True
Testes Lógicos sobre Strings
:: Exemplos de funções
 Função islower()
 Verifica se todos os caracteres na string são minúsculos.
 Função isupper()
 Verifica se todos os caracteres na string são maiúsculos.
str1 = 'fulano'
str2 = 'FULANO'
str3 = 'Fulano'
str1.islower() # True
str3.islower() # False
str2.isupper() # True
str3.isupper() # False
Conteúdo – Strings
Introdução a strings
Operações com strings
Funções "Is" para strings
Conversão de strings para números
Alguns problemas
Conversão de strings para números
• Converte números em stringsstr()
• Converte strings em números 
inteirosint()
• Converte strings em números 
reaisfloat()
Conversão de strings para númerosstr1 = '123'
num1 = 123
str(num1) # '123'
int(str1) # 123
float(str1) # 123.0
int(str1) + num1 # 246
float(str1) + num1 # 246.0
str(num1) + str1 # '123123'
str1 + num1 # ERRO
Conteúdo – Strings
Introdução a strings
Operações com strings
Funções "Is" para strings
Conversão de strings para números
Alguns problemas
Problema 1
:: Separação de string
 Elabore um script que leia o nome completo de 
uma pessoa e imprima o prenome e o sobrenome.
Separação de string
:: Script em Python
# Leitura do nome
nome = input("Informe o nome: ").split(' ')
# Imprime prenome
print('Prenome:', nome[0])
# Imprime primeiro sobrenome
print('Sobrenome:', nome[1])
# Imprime lista de sobrenomes
print('Sobrenome:', nome[1:])
# Imprime ultimo sobrenome
print('Sobrenome:', nome[-1])
Problema 2
:: Contagem de ocorrências
 A partir de um texto fornecido pelo usuário, conte 
o número de caracteres e quantos deles são 
vogais.
Separação de string
:: Script em Python
from numpy import *
# Inicialização do contador de vogais
cont = 0
# Leitura do texto a ser analisado
texto = input("Digite o texto: ").upper()
# Percorre a string contando as vogais
for ch in texto:
if ch == "A" or ch == "E" or ch == "I" or ch == 
"O" or ch == "U":
cont = cont + 1 
# Impressao das informacoes
print(len(texto))
print(cont)
Referências bibliográficas
 Menezes, Nilo Ney Coutinho (2010). Introdução à 
Programação com Python. Editora Novatec.
 Hetland, Magnus Lie (2008). Beginning Python: 
From Novice to Professional. Springer eBooks, 2ª 
edição. Disponível em: 
http://dx.doi.org/10.1007/978-1-4302-0634-7.
 Horstmann, Cay & Necaise, Rance D. (2013). 
Python for Everyone. John Wiley & Sons.
65
Dúvidas?66

Outros materiais