SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Computação 1 - Python
Aula 5 - Teórica: Manipulação de Strings,
Tuplas e Listas
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
1/ 30
Manipulação de Strings
Para obter ajuda a respeito de um tipo de dado, digite
help(tipo).
Por exemplo: help(str) para obter ajuda sobre strings,
help(int) para ajuda sobre inteiros, etc.
Existem várias funções disponı́veis para executar diferentes
tarefas com strings. A sintaxe para estas funções é:
str. nomeFunção (umaString, parâmetros )
Exemplo
>>>str.upper(’abcde’)
’ABCDE’
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
2/ 30
Manipulação de Strings
lower(): retorna a string com todos os caracteres maiúsculos
convertidos para minúsculos.
upper(): retorna a string com todos os caracteres minúsculos
convertidos para maiúsculos.
Exemplo
>>> str.upper("Esperança")
ESPERANÇA
>>> str.lower("Pé de Laranja Lima")
pé de laranja lima
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
3/ 30
Manipulação de Strings
str.count(umaString, elemento, inicio, fim): retorna
quantas vezes o elemento aparece na string, procurando-se a
partir da posição inicio e indo até a posição fim - 1.
inicio e fim são opcionais.
Exemplo
>>> frase="macaco come banana"
>>> str.count(frase, "a", 2, 10)
>>> 1
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
4/ 30
Manipulação de Strings
str.index(umaString,elemento, inicio, fim): retorna o ı́ndice da primeira
ocorrência de elemento na string, a partir da posição inicio, até a posição fim -
1.
inicio e fim são opcionais.
Exemplo
>>> str.index("mariana", "a")
>>> str.index("mariana", "a", 2)
>>> str.index("mariana", "a",5, 7)
>>> str.index(’Mariana’, ’ana’)
>>> str.index(’Mariana’, ’x’)
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
5/ 30
Manipulação de Strings
str.index(umaString,elemento, inicio, fim): retorna o ı́ndice da primeira
ocorrência de elemento na string, a partir da posição inicio, até a posição fim -
1.
inicio e fim são opcionais.
Exemplo
>>> str.index("mariana", "a")
1
>>> str.index("mariana", "a", 2)
4
>>> str.index("mariana", "a",5, 7)
6
>>> str.index(’Mariana’, ’ana’)
4
>>> str.index(’Mariana’, ’x’)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
str.index(’Mariana’, ’x’)
ValueError: substring not found
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
6/ 30
Tuplas
Uma tupla é uma sequência heterogênea (permite que seus elementos sejam de
tipos diferentes):
>>> a = (1,2,3,4)
>>> b = (1.0, 2, ’3’, 4+0j)
>>> c = 1,2,3,4
>>> d = (1,)
Valores em uma tupla podem ser distribuı́dos em variáveis como uma atribuição
múltipla:
>>> x = 1, 2, 3
>>> x
(1, 2, 3)
>>> a, b, c = x
>>> a
1
>>> b
2
>>> c
3
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
7/ 30
Tuplas
Tupla Vazia: ()
Tupla unitária: contém um único elemento, que deve ser sucedido por uma
vı́rgula.
Os parênteses são opcionais se não provocarem ambiguidade.
Um valor entre parênteses sem vı́rgula no final é meramente uma expressão.
>>> (10)
10
>>> 10,
(10,)
>>> (10,)
(10,)
>>> 3*(10+3)
39
>>> 3*(10+3,)
(13, 13, 13)
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
8/ 30
Tuplas
Tuplas são muito similares às strings em relação às operações.
O tamanho de uma tupla é dado pela função len.
>>> x = (1,2,3)
>>> len(x)
3
Indexação: começando do 0 à esquerda, ou de -1 à direita.
>>> x[0]
1
Fatiamento: idêntico às strings.
>>> x[0:2]
(1,2)
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
9/ 30
Tuplas
Tuplas são muito similares às strings em relação às operações.
O tamanho de uma tupla é dado pela função len.
>>> x = (1,2,3)
>>> len(x)
3
Indexação: começando do 0 à esquerda, ou de -1 à direita.
>>> x[0]
1
Fatiamento: idêntico às strings.
>>> x[0:2]
(1,2) -> NOVA TUPLA
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
10/ 30
Tuplas
Concatenação e Replicação
>>> x*2
(1,2,3,1,2,3)
>>> x + (5,4)
(1,2,3,5,4)
Imutabilidade : uma vez criada, uma tupla não pode ser alterada !
>>> x[0] = 9
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
x[0]=9
TypeError: ’tuple’ object does not support item assignment
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
11/ 30
Tuplas
Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro
que tem. Faça funções para:
a. calcular o número de bombons e o troco, dados o dinheiro e o preço de
um bombom.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
12/ 30
Tuplas
Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro
que tem. Faça funções para:
a. calcular o número de bombons e o troco, dados o dinheiro e o preço de
um bombom.
def bombom(dinheiro,preco):
return dinheiro // preco , dinheiro % preco
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
12/ 30
Tuplas
Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro
que tem. Faça funções para:
a. calcular o número de bombons e o troco, dados o dinheiro e o preço de
um bombom.
def bombom(dinheiro,preco):
return dinheiro // preco , dinheiro % preco
b. calcular quanto Joãozinho terá que pedir para sua mãe para comprar um
bombom a mais, dados o dinheiro que ele tem e o preço de um bombom.
Utilize a função definida em a.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
12/ 30
Tuplas
Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro
que tem. Faça funções para:
a. calcular o número de bombons e o troco, dados o dinheiro e o preço de
um bombom.
def bombom(dinheiro,preco):
return dinheiro // preco , dinheiro % preco
b. calcular quanto Joãozinho terá que pedir para sua mãe para comprar um
bombom a mais, dados o dinheiro que ele tem e o preço de um bombom.
Utilize a função definida em a.
def maisbombom(dinheiro,preco):
return preco - bombom(dinheiro,preco)[1]
Testes: bombom(10,3) e maisbombom(10,3)
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
12/ 30
Tuplas
a. Escreva uma função que recebe uma tupla e retorna True se o primeiro
elemento for igual ao último elemento da tupla.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
13/ 30
Tuplas
a. Escreva uma função que recebe uma tupla e retorna True se o primeiro
elemento for igual ao último elemento da tupla.
# Inı́cio da tupla é igual ao final?
# tupla → bool
def igual if(tup):
return tup[0] == tup[-1]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
13/ 30
Tuplas
a. Escreva uma função que recebe uma tupla e retorna True se o primeiro
elemento for igual ao último elemento da tupla.
# Inı́cio da tupla é igual ao final?
# tupla → bool
def igual if(tup):
return tup[0] == tup[-1]
b. Escreva uma função inverte que recebe uma tupla de três elementos e
retorna uma nova tupla com os elementos na ordem reversa.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
13/ 30
Tuplas
b. Escreva uma função inverte que recebe uma tupla de três elementos e
retorna uma nova tupla com os elementos na ordem reversa.
# Inverte elementos de uma tupla de tamanho 3
# tupla tamanho 3 → tupla tamanho 3
def inverte(tup):
return tup[2], tup[1], tup[0]
# Inverte elementos de uma tupla de tamanho 3
# tupla tamanho 3 → tupla tamanho 3
def inverte(tup):
return tup[::-1]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
14/ 30
Tuplas
Exercı́cios
c. Escreva a função intercala que recebe duas tuplas de três elementos cada
e retorna uma tupla de seis elementos intercalando as duas tuplas.
d. Escreva a função opera que recebe uma tupla com uma string e dois
números; se a string for ’SOMA’, retorna a soma dos dois números, se for
’MULT’, retorna a multiplicação, se for ’DIV’, retorna a divisão, se for
’SUB’, retorna a subtração, se não for nenhuma das anteriores retorna
None.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
15/ 30
Listas
Tipo de dados mais versátil do Python.
Uma lista é representada como uma sequência de valores
entre colchetes e separados por vı́rgula.
Os elementos de uma lista podem ser de tipos de dados
diferentes.
Listas são mutáveis !!!
Exemplo
>>> lista1 = [’calculo’, ’fisica’, ’computacao’]
>>> lista2 = [’notas’, 5.4, ’aprovado’]
>>> lista2[1] = 6
>>> lista2
[’notas’, 6, ’aprovado’]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
16/ 30
Listas
Atenção: Uma lista vazia não contém nenhum elemento
Exemplo
>>> lista3 = [ ]
>>> lista3[0]
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
lista3[0]
IndexError: list index out of range
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
17/ 30
Listas
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
18/ 30
Listas
>>> [1,2] + [3]
>>> [1,2] + [[3]]
>>> [[1,2]] + [[3]]
>>> [1,2] * 3
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
19/ 30
Listas
>>> [1,2] + [3]
[1, 2, 3] (Concatenando Listas)
>>> [1,2] + [[3]]
[1, 2, [3]]
>>> [[1,2]] + [[3]]
[[1, 2], [3]]
>>> [1,2] * 3
[1, 2, 1, 2, 1, 2] (Equivale a [1,2]+[1,2]+[1,2])
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
20/ 30
Listas
>>> [1,2] * [3]
>>> [1,2] - [3]
Como retirar um elemento de uma lista?
Aguarde
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
21/ 30
Listas
>>> [1,2] * [3]
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
[1,2]*[3]
TypeError: can’t multiply sequence by non-int of type ’list’
>>> [1,2] - [3]
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
[1,2]-[2]
TypeError: unsupported operand type(s) for -: ’list’ and ’list’
Como retirar um elemento de uma lista?
Aguarde
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
22/ 30
Listas
Faça uma função que receba duas listas como entrada e retorne a
concatenação destas listas.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
23/ 30
Listas
Faça uma função que receba duas listas como entrada e retorne a
concatenação destas listas.
# Função que dadas duas listas,
# retorna a concatenação das listas
# list,list → list
def concatenaListas(Lista1,Lista2):
return Lista1+Lista2
>>> concatenaListas([1,2,3],[4,5,6])
[1,2,3,4,5,6]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
23/ 30
Listas
Faça uma função que dado um número inteiro como entrada,
retorne uma lista com todos os números pares entre 1 e o número
dado, inclusive.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
24/ 30
Listas
A função range(...) pode ter 1, 2 ou 3 argumentos:
range(numero): retorna uma lista contendo uma sequência de
valores de 0 a numero-1
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(inf,sup): retorna uma lista contendo uma sequência de
valores de inf a sup-1
>>> range(3, 8)
[3, 4, 5, 6, 7]
range(inf, sup, inc): retorna uma lista contendo uma sequência
de valores de inf a sup-1 com incremento de inc
>>> range(3, 8, 2)
[3, 5, 7]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
25/ 30
Listas
ATENÇÃO: A função range(...) começa com zero
São equivalentes:
range(10)
range(0,10)
range(0,10,1)
Exemplos:
>>> range(3)
>>> range(2,5,2)
>>> range(5,2,-2)
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
26/ 30
Listas
ATENÇÃO: A função range(...) começa com zero
São equivalentes:
range(10)
range(0,10)
range(0,10,1)
Exemplos:
>>> range(3)
[0, 1, 2]
>>> range(2,5,2)
[2, 4]
>>> range(5,2,-2)
[5, 3]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
27/ 30
Listas
Faça uma função que dado um número inteiro como entrada, retorne uma lista
com todos os números pares entre 1 e o número dado, inclusive.
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
28/ 30
Listas
Faça uma função que dado um número inteiro como entrada, retorne uma lista
com todos os números pares entre 1 e o número dado, inclusive.
# Função que dado um número inteiro,
# retorna uma lista com todos os números
# pares entre 1 e o número dado, inclusive
# int → list
def lista(n):
if n%2==0:
return range(2,n+1,2)
else:
return range(2,n,2)
>>> lista(5)
[2,4]
>>> lista(6)
[2,4,6]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
28/ 30
Listas - Exercı́cios
1. Faça uma função que dada uma lista com 5 notas, retorne a média das
notas.
2. Faça uma função que, dados dois inteiros x e y, retorna uma lista com
todos os valores entre x e y (inclusive), funcionando tanto para x <= y
como para x > y.
Exemplos
x = 2, y = 6, resultado = [2, 3, 4, 5, 6]
x = 10, y = 7, resultado = [10, 9, 8, 7]
3. Faça uma função que dadas duas listas de três elementos com números
inteiros, retorna uma lista onde cada elemento é a soma dos elementos de
mesma posição nas duas primeiras listas.
Exemplo
Lista1 = [1,4,6]
Lista2 = [2,4,3]
Lista resultante = [3,8,9]
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
29/ 30
Computação 1 - Python
Aula 5 - Teórica: Manipulação de Strings,
Tuplas e Listas
Coordenação de Computação - Dept. Ciência da Computação - UFRJ
30/ 30

Mais conteúdo relacionado

Semelhante a Python Strings, Tuplas e Listas

Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e stringsVictor Marcelino
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfEduardoChicoJooJoo
 
Usando numba onde python é lento
Usando numba onde python é lentoUsando numba onde python é lento
Usando numba onde python é lentoEdison Muenz
 
Palestra python
Palestra pythonPalestra python
Palestra pythonRony Cruch
 
Aula de augoritmos e técnicas de programação II
Aula de augoritmos e técnicas de programação IIAula de augoritmos e técnicas de programação II
Aula de augoritmos e técnicas de programação IIvictorlopes714651
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Isaac Barros
 
Aulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton YagamiAulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton YagamiAyrton Yagami
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorialblogmaxima
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em Crodolfoeyalana
 
15 algoritmos de busca em tabelas - sequencial e binaria
15   algoritmos de busca em tabelas - sequencial e binaria15   algoritmos de busca em tabelas - sequencial e binaria
15 algoritmos de busca em tabelas - sequencial e binariaRicardo Bolanho
 
Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Pacc UAB
 
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...UFAM - Universidade Federal do Amazonas
 

Semelhante a Python Strings, Tuplas e Listas (20)

Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e strings
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdf
 
Usando numba onde python é lento
Usando numba onde python é lentoUsando numba onde python é lento
Usando numba onde python é lento
 
Palestra python
Palestra pythonPalestra python
Palestra python
 
Aula de augoritmos e técnicas de programação II
Aula de augoritmos e técnicas de programação IIAula de augoritmos e técnicas de programação II
Aula de augoritmos e técnicas de programação II
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1
 
Python 02
Python 02Python 02
Python 02
 
Aulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton YagamiAulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton Yagami
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em C
 
Mini curso-prof-peternelli
Mini curso-prof-peternelliMini curso-prof-peternelli
Mini curso-prof-peternelli
 
15 algoritmos de busca em tabelas - sequencial e binaria
15   algoritmos de busca em tabelas - sequencial e binaria15   algoritmos de busca em tabelas - sequencial e binaria
15 algoritmos de busca em tabelas - sequencial e binaria
 
Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1
 
python
pythonpython
python
 
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
 

Python Strings, Tuplas e Listas

  • 1. Computação 1 - Python Aula 5 - Teórica: Manipulação de Strings, Tuplas e Listas Coordenação de Computação - Dept. Ciência da Computação - UFRJ 1/ 30
  • 2. Manipulação de Strings Para obter ajuda a respeito de um tipo de dado, digite help(tipo). Por exemplo: help(str) para obter ajuda sobre strings, help(int) para ajuda sobre inteiros, etc. Existem várias funções disponı́veis para executar diferentes tarefas com strings. A sintaxe para estas funções é: str. nomeFunção (umaString, parâmetros ) Exemplo >>>str.upper(’abcde’) ’ABCDE’ Coordenação de Computação - Dept. Ciência da Computação - UFRJ 2/ 30
  • 3. Manipulação de Strings lower(): retorna a string com todos os caracteres maiúsculos convertidos para minúsculos. upper(): retorna a string com todos os caracteres minúsculos convertidos para maiúsculos. Exemplo >>> str.upper("Esperança") ESPERANÇA >>> str.lower("Pé de Laranja Lima") pé de laranja lima Coordenação de Computação - Dept. Ciência da Computação - UFRJ 3/ 30
  • 4. Manipulação de Strings str.count(umaString, elemento, inicio, fim): retorna quantas vezes o elemento aparece na string, procurando-se a partir da posição inicio e indo até a posição fim - 1. inicio e fim são opcionais. Exemplo >>> frase="macaco come banana" >>> str.count(frase, "a", 2, 10) >>> 1 Coordenação de Computação - Dept. Ciência da Computação - UFRJ 4/ 30
  • 5. Manipulação de Strings str.index(umaString,elemento, inicio, fim): retorna o ı́ndice da primeira ocorrência de elemento na string, a partir da posição inicio, até a posição fim - 1. inicio e fim são opcionais. Exemplo >>> str.index("mariana", "a") >>> str.index("mariana", "a", 2) >>> str.index("mariana", "a",5, 7) >>> str.index(’Mariana’, ’ana’) >>> str.index(’Mariana’, ’x’) Coordenação de Computação - Dept. Ciência da Computação - UFRJ 5/ 30
  • 6. Manipulação de Strings str.index(umaString,elemento, inicio, fim): retorna o ı́ndice da primeira ocorrência de elemento na string, a partir da posição inicio, até a posição fim - 1. inicio e fim são opcionais. Exemplo >>> str.index("mariana", "a") 1 >>> str.index("mariana", "a", 2) 4 >>> str.index("mariana", "a",5, 7) 6 >>> str.index(’Mariana’, ’ana’) 4 >>> str.index(’Mariana’, ’x’) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> str.index(’Mariana’, ’x’) ValueError: substring not found Coordenação de Computação - Dept. Ciência da Computação - UFRJ 6/ 30
  • 7. Tuplas Uma tupla é uma sequência heterogênea (permite que seus elementos sejam de tipos diferentes): >>> a = (1,2,3,4) >>> b = (1.0, 2, ’3’, 4+0j) >>> c = 1,2,3,4 >>> d = (1,) Valores em uma tupla podem ser distribuı́dos em variáveis como uma atribuição múltipla: >>> x = 1, 2, 3 >>> x (1, 2, 3) >>> a, b, c = x >>> a 1 >>> b 2 >>> c 3 Coordenação de Computação - Dept. Ciência da Computação - UFRJ 7/ 30
  • 8. Tuplas Tupla Vazia: () Tupla unitária: contém um único elemento, que deve ser sucedido por uma vı́rgula. Os parênteses são opcionais se não provocarem ambiguidade. Um valor entre parênteses sem vı́rgula no final é meramente uma expressão. >>> (10) 10 >>> 10, (10,) >>> (10,) (10,) >>> 3*(10+3) 39 >>> 3*(10+3,) (13, 13, 13) Coordenação de Computação - Dept. Ciência da Computação - UFRJ 8/ 30
  • 9. Tuplas Tuplas são muito similares às strings em relação às operações. O tamanho de uma tupla é dado pela função len. >>> x = (1,2,3) >>> len(x) 3 Indexação: começando do 0 à esquerda, ou de -1 à direita. >>> x[0] 1 Fatiamento: idêntico às strings. >>> x[0:2] (1,2) Coordenação de Computação - Dept. Ciência da Computação - UFRJ 9/ 30
  • 10. Tuplas Tuplas são muito similares às strings em relação às operações. O tamanho de uma tupla é dado pela função len. >>> x = (1,2,3) >>> len(x) 3 Indexação: começando do 0 à esquerda, ou de -1 à direita. >>> x[0] 1 Fatiamento: idêntico às strings. >>> x[0:2] (1,2) -> NOVA TUPLA Coordenação de Computação - Dept. Ciência da Computação - UFRJ 10/ 30
  • 11. Tuplas Concatenação e Replicação >>> x*2 (1,2,3,1,2,3) >>> x + (5,4) (1,2,3,5,4) Imutabilidade : uma vez criada, uma tupla não pode ser alterada ! >>> x[0] = 9 Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> x[0]=9 TypeError: ’tuple’ object does not support item assignment Coordenação de Computação - Dept. Ciência da Computação - UFRJ 11/ 30
  • 12. Tuplas Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 12/ 30
  • 13. Tuplas Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. def bombom(dinheiro,preco): return dinheiro // preco , dinheiro % preco Coordenação de Computação - Dept. Ciência da Computação - UFRJ 12/ 30
  • 14. Tuplas Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. def bombom(dinheiro,preco): return dinheiro // preco , dinheiro % preco b. calcular quanto Joãozinho terá que pedir para sua mãe para comprar um bombom a mais, dados o dinheiro que ele tem e o preço de um bombom. Utilize a função definida em a. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 12/ 30
  • 15. Tuplas Joãozinho quer comprar o maior número de bombons possı́vel com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. def bombom(dinheiro,preco): return dinheiro // preco , dinheiro % preco b. calcular quanto Joãozinho terá que pedir para sua mãe para comprar um bombom a mais, dados o dinheiro que ele tem e o preço de um bombom. Utilize a função definida em a. def maisbombom(dinheiro,preco): return preco - bombom(dinheiro,preco)[1] Testes: bombom(10,3) e maisbombom(10,3) Coordenação de Computação - Dept. Ciência da Computação - UFRJ 12/ 30
  • 16. Tuplas a. Escreva uma função que recebe uma tupla e retorna True se o primeiro elemento for igual ao último elemento da tupla. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 13/ 30
  • 17. Tuplas a. Escreva uma função que recebe uma tupla e retorna True se o primeiro elemento for igual ao último elemento da tupla. # Inı́cio da tupla é igual ao final? # tupla → bool def igual if(tup): return tup[0] == tup[-1] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 13/ 30
  • 18. Tuplas a. Escreva uma função que recebe uma tupla e retorna True se o primeiro elemento for igual ao último elemento da tupla. # Inı́cio da tupla é igual ao final? # tupla → bool def igual if(tup): return tup[0] == tup[-1] b. Escreva uma função inverte que recebe uma tupla de três elementos e retorna uma nova tupla com os elementos na ordem reversa. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 13/ 30
  • 19. Tuplas b. Escreva uma função inverte que recebe uma tupla de três elementos e retorna uma nova tupla com os elementos na ordem reversa. # Inverte elementos de uma tupla de tamanho 3 # tupla tamanho 3 → tupla tamanho 3 def inverte(tup): return tup[2], tup[1], tup[0] # Inverte elementos de uma tupla de tamanho 3 # tupla tamanho 3 → tupla tamanho 3 def inverte(tup): return tup[::-1] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 14/ 30
  • 20. Tuplas Exercı́cios c. Escreva a função intercala que recebe duas tuplas de três elementos cada e retorna uma tupla de seis elementos intercalando as duas tuplas. d. Escreva a função opera que recebe uma tupla com uma string e dois números; se a string for ’SOMA’, retorna a soma dos dois números, se for ’MULT’, retorna a multiplicação, se for ’DIV’, retorna a divisão, se for ’SUB’, retorna a subtração, se não for nenhuma das anteriores retorna None. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 15/ 30
  • 21. Listas Tipo de dados mais versátil do Python. Uma lista é representada como uma sequência de valores entre colchetes e separados por vı́rgula. Os elementos de uma lista podem ser de tipos de dados diferentes. Listas são mutáveis !!! Exemplo >>> lista1 = [’calculo’, ’fisica’, ’computacao’] >>> lista2 = [’notas’, 5.4, ’aprovado’] >>> lista2[1] = 6 >>> lista2 [’notas’, 6, ’aprovado’] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 16/ 30
  • 22. Listas Atenção: Uma lista vazia não contém nenhum elemento Exemplo >>> lista3 = [ ] >>> lista3[0] Traceback (most recent call last): File "<pyshell#18>", line 1, in <module> lista3[0] IndexError: list index out of range Coordenação de Computação - Dept. Ciência da Computação - UFRJ 17/ 30
  • 23. Listas Coordenação de Computação - Dept. Ciência da Computação - UFRJ 18/ 30
  • 24. Listas >>> [1,2] + [3] >>> [1,2] + [[3]] >>> [[1,2]] + [[3]] >>> [1,2] * 3 Coordenação de Computação - Dept. Ciência da Computação - UFRJ 19/ 30
  • 25. Listas >>> [1,2] + [3] [1, 2, 3] (Concatenando Listas) >>> [1,2] + [[3]] [1, 2, [3]] >>> [[1,2]] + [[3]] [[1, 2], [3]] >>> [1,2] * 3 [1, 2, 1, 2, 1, 2] (Equivale a [1,2]+[1,2]+[1,2]) Coordenação de Computação - Dept. Ciência da Computação - UFRJ 20/ 30
  • 26. Listas >>> [1,2] * [3] >>> [1,2] - [3] Como retirar um elemento de uma lista? Aguarde Coordenação de Computação - Dept. Ciência da Computação - UFRJ 21/ 30
  • 27. Listas >>> [1,2] * [3] Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> [1,2]*[3] TypeError: can’t multiply sequence by non-int of type ’list’ >>> [1,2] - [3] Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> [1,2]-[2] TypeError: unsupported operand type(s) for -: ’list’ and ’list’ Como retirar um elemento de uma lista? Aguarde Coordenação de Computação - Dept. Ciência da Computação - UFRJ 22/ 30
  • 28. Listas Faça uma função que receba duas listas como entrada e retorne a concatenação destas listas. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 23/ 30
  • 29. Listas Faça uma função que receba duas listas como entrada e retorne a concatenação destas listas. # Função que dadas duas listas, # retorna a concatenação das listas # list,list → list def concatenaListas(Lista1,Lista2): return Lista1+Lista2 >>> concatenaListas([1,2,3],[4,5,6]) [1,2,3,4,5,6] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 23/ 30
  • 30. Listas Faça uma função que dado um número inteiro como entrada, retorne uma lista com todos os números pares entre 1 e o número dado, inclusive. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 24/ 30
  • 31. Listas A função range(...) pode ter 1, 2 ou 3 argumentos: range(numero): retorna uma lista contendo uma sequência de valores de 0 a numero-1 >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(inf,sup): retorna uma lista contendo uma sequência de valores de inf a sup-1 >>> range(3, 8) [3, 4, 5, 6, 7] range(inf, sup, inc): retorna uma lista contendo uma sequência de valores de inf a sup-1 com incremento de inc >>> range(3, 8, 2) [3, 5, 7] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 25/ 30
  • 32. Listas ATENÇÃO: A função range(...) começa com zero São equivalentes: range(10) range(0,10) range(0,10,1) Exemplos: >>> range(3) >>> range(2,5,2) >>> range(5,2,-2) Coordenação de Computação - Dept. Ciência da Computação - UFRJ 26/ 30
  • 33. Listas ATENÇÃO: A função range(...) começa com zero São equivalentes: range(10) range(0,10) range(0,10,1) Exemplos: >>> range(3) [0, 1, 2] >>> range(2,5,2) [2, 4] >>> range(5,2,-2) [5, 3] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 27/ 30
  • 34. Listas Faça uma função que dado um número inteiro como entrada, retorne uma lista com todos os números pares entre 1 e o número dado, inclusive. Coordenação de Computação - Dept. Ciência da Computação - UFRJ 28/ 30
  • 35. Listas Faça uma função que dado um número inteiro como entrada, retorne uma lista com todos os números pares entre 1 e o número dado, inclusive. # Função que dado um número inteiro, # retorna uma lista com todos os números # pares entre 1 e o número dado, inclusive # int → list def lista(n): if n%2==0: return range(2,n+1,2) else: return range(2,n,2) >>> lista(5) [2,4] >>> lista(6) [2,4,6] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 28/ 30
  • 36. Listas - Exercı́cios 1. Faça uma função que dada uma lista com 5 notas, retorne a média das notas. 2. Faça uma função que, dados dois inteiros x e y, retorna uma lista com todos os valores entre x e y (inclusive), funcionando tanto para x <= y como para x > y. Exemplos x = 2, y = 6, resultado = [2, 3, 4, 5, 6] x = 10, y = 7, resultado = [10, 9, 8, 7] 3. Faça uma função que dadas duas listas de três elementos com números inteiros, retorna uma lista onde cada elemento é a soma dos elementos de mesma posição nas duas primeiras listas. Exemplo Lista1 = [1,4,6] Lista2 = [2,4,3] Lista resultante = [3,8,9] Coordenação de Computação - Dept. Ciência da Computação - UFRJ 29/ 30
  • 37. Computação 1 - Python Aula 5 - Teórica: Manipulação de Strings, Tuplas e Listas Coordenação de Computação - Dept. Ciência da Computação - UFRJ 30/ 30