SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Claudio Esperança
Python:
Tuplas e Strings
Tuplas
 São estruturas de dados parecidas com listas, mas com a
particularidade de serem imutáveis
 Tuplas são seqüências e, assim como listas, podem ser
indexadas e fatiadas, mas não é possível modificá-las
 Um valor do tipo tupla é uma série de valores separados por
vírgulas e entre parênteses
>>> x = (1,2,3)
>>> x
(1, 2, 3)
>>> x [0]
1
>>> x [0]=1
...
TypeError: object does not support item assignment
Tuplas
 Uma tupla vazia se escreve ()
 Os parênteses são opcionais se não provocarem ambigüidade
 Uma tupla contendo apenas um elemento deve ser escrita com
uma vírgula ao final
 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)
A função tuple
 Assim como a função list constrói uma lista a partir
de uma seqüência qualquer, a função tuple constrói
uma tupla a partir de uma seqüência qualquer
>>> list("abcd”)
['a', 'b', 'c', 'd']
>>> tuple("abcd”)
('a', 'b', 'c', 'd’))
>>> tuple([1,2,3])
(1, 2, 3)
>>> list((1,2,3))
[1, 2, 3]
Quando usar tuplas
 Em geral, tuplas podem ser substituídas com
vantagem por listas
 Entretanto, algumas construções em Python
requerem tuplas ou seqüências imutáveis, por
exemplo:
 Tuplas (ao contrário de listas) podem ser usadas como
chaves de dicionários
 Funções com número variável de argumentos
acessam os argumentos por meio de tuplas
 O operador de formatação aceita tuplas, mas não listas
O operador de formatação
 Strings suportam o operador % que, dada uma string especial
(template) e um valor, produz uma string formatada
 O formato geral é
 template % valor
 O template é uma string entremeada por códigos de
formatação
 Um código de formatação é em geral composto do caracter
% seguido de uma letra descritiva do tipo do valor a
formatar (s para string, f para float, d para inteiro, etc)
 Exemplo:
>>> '====%d====' % 100
'====100===='
>>> '====%f====' % 1
'====1.000000===='
Formatando tuplas
 Um template pode ser aplicado aos diversos valores
de uma tupla para construir uma string formatada
 Ex.:
>>> template = "%s tem %d anos"
>>> tupla = ('Pedro', 10)
>>> template % tupla
'Pedro tem 10 anos'
 Obs: mais tarde veremos que o operador de
formatação também pode ser aplicado a dicionários
Anatomia das especificações de
formato
 Caracter %
 Flags de conversão (opcionais):
 - indica alinhamento à esquerda
 + indica que um sinal deve preceder o valor convertido
 “ ” (um branco) indica que um espaço deve preceder números
positivos
 0 indica preenchimento à esquerda com zeros
 Comprimento mínimo do campo (opcional)
 O valor formatado terá este comprimento no mínimo
 Se igual a * (asterisco), o comprimento será lido da tupla
 Um “.” (ponto) seguido pela precisão (opcional)
 Usado para converter as casas decimais de floats
 Se aplicado para strings, indica o comprimento máximo
 Se igual a *, o valor será lido da tupla
 Caracter indicador do tipo de formato
Tipos de formato
 d, i Número inteiro escrito em decimal
 o Número inteiro sem sinal escrito em octal
 u Número inteiro sem sinal escrito em decimal
 x Número inteiro sem sinal escrito em hexadecimal (minúsculas)
 X Número inteiro sem sinal escrito em hexadecimal (maiúsculas)
 e Número de ponto flutuante escrito em notação científica ('e' minúsculo)
 E Número de ponto flutuante escrito em notação científica ('E' maiúsculo)
 f, F Número de ponto flutuante escrito em notação convencional
 g Mesmo que e se expoente é maior que -4. Caso contrario, igual a f
 G Mesmo que E se expoente é maior que -4. Caso contrario, igual a F
 C Caractere único (usado com inteiro ou string de tamanho 1)
 r String (entrada é qualquer objeto Python que é convertido usando a
função repr)
Exemplos
>>> "Numero inteiro: %d" % 55
'Numero inteiro: 55'
>>> "Numero inteiro com 3 casas: %3d" % 55
'Numero inteiro com 3 casas: 55'
>>> "Inteiro com 3 casas e zeros a esquerda: %03d" % 55
'Inteiro com 3 casas e zeros a esquerda: 055'
>>> "Inteiro escrito em hexadecimal: %x" % 55
'Inteiro escrito em hexadecimal: 37'
>>> from math import pi
>>> "Ponto flutuante: %f" % pi
'Ponto flutuante: 3.141593'
>>> "Ponto flutuante com 12 decimais: %.12f" % pi
'Ponto flutuante com 12 decimais: 3.141592653590'
>>> "Ponto flutuante com 10 caracteres: %10f" % pi
'Ponto flutuante com 10 caracteres: 3.141593'
>>> "Ponto flutuante em notacao cientifica: %10e" % pi
'Ponto flutuante em notacao cientifica: 3.141593e+00'
>>> "String com tamanho maximo definido: %.3s" % "Pedro"
'String com tamanho maximo definido: Ped'
Exemplo: Imprimindo uma tabela
Itens = ["Abacate", "Limão", "Tangerina", "Melancia”, "Laranja da China"]
precos = [2.13, 0.19, 1.95, 0.87, 12.00]
len_precos = 10 # Coluna de precos tem 10 caracteres
# Achar a largura da coluna de itens
len_itens = len(itens[0])
for it in itens : len_itens = max(len_itens,len(it))
# Imprimir tabela de precos
print "-"*(len_itens+len_precos)
print "%-*s%*s" % (len_itens, "Item", len_precos, "Preço”)
print "-"*(len_itens+len_precos)
for i in range(len(itens)):
print "%-*s%*.2f" % (len_itens, itens[i],len_precos, precos[i])
Exemplo: resultados
-----------------------------------
Item Preço
-----------------------------------
Abacate 2.13
Limão 0.19
Tangerina 1.95
Melancia 0.87
Laranja da China 12.00
O Módulo String
 Manipulação de strings é uma atividade freqüente em
programas Python
 Existe um módulo chamado string que contém uma
grande quantidade de funcionalidades para trabalhar
com strings
 Para usá-las:
from string import *
 Entretanto, strings pertencem à classe str e a maior
parte do que existe no módulo string aparece como
métodos da classe str
Strings: método find
 find (substring, inicio, fim)
 Retorna o índice da primeira ocorrência de substring
 inicio e fim são opcionais e indicam os intervalos de
índices onde a busca será efetuada
 Os defaults são 0 e o comprimento da string, respectivamente
 Caso substring não apareça na string, é retornado -1
 Observe que o operador in pode ser usado para dizer
se uma substring aparece numa string
Strings: método find (exemplo)‫‏‬
>>> s = "quem parte e reparte, fica com a maior parte"
>>> s.find("parte”)
5
>>> s.find("reparte”)
13
>>> s.find("parcela”)
-1
>>> "parte" in s
True
>>> s.find("parte",6)
15
>>> s.find("parte",6,12)
-1
Strings: método join
 join(seqüência)
 Retorna uma string com todos os elementos da
seqüência concatenados
 Obs: Os elementos da seqüência têm que ser strings
 A string objeto é usada como separador entre os
elementos
 Ex.:
>>> "/".join(("usr","bin","python"))
'usr/bin/python'
>>> "Q".join((1,2,3,4,5))
...
TypeError: sequence item 0: expected string, int found
>>> "Q".join(('1','2','3','4','5'))
'1Q2Q3Q4Q5'
Strings: métodos lower e upper
 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
 Ex.:
>>> print "Esperança".upper()
ESPERANÇA
>>> print "Pé de Laranja Lima".lower()
pé de laranja lima
Strings: método replace
 replace(velho,novo,n)
 Substitui as instâncias da substring velho por novo
 Se n for especificado, apenas n instâncias são
trocadas
 Caso contrário, todas as instâncias são trocadas
 Ex.:
>>> s = "quem parte e reparte, fica com a maior parte"
>>> s.replace("parte","parcela”)
'quem parcela e reparcela, fica com a maior parcela'
>>> s.replace("parte","parcela",2)
'quem parcela e reparcela, fica com a maior parte'
Strings: método split
 split(separador)
 Retorna uma lista com as substrings presentes entre cópias
da string separador
 Faz o contrário do método join
 Se separador não for especificado, é assumido seqüências
de caracteres em branco, tabs ou newlines
 Ex.:
>>> s = "xxx yyy zzz xxx yyy zzz"
>>> s.split()
['xxx', 'yyy', 'zzz', 'xxx', 'yyy', 'zzz']
>>> s.split('xxx’)
['', ' yyy zzz ', ' yyy zzz']
Strings: método strip
 strip(ch)
 Retorna a string sem caracteres iniciais ou finais que
estejam na string ch
 Se ch não for especificada, retira caracteres em branco
 Pode-se também usar rstrip() para retirar caracteres à
direita (final) ou lstrip() para retirar caracteres à esquerda
(início)
 Ex.:
>>> " xxx afdsfa ".strip()
'xxx afdsfa'
>>> "xxx yyy zzz xxx".strip("xy ”)
'zzz'
>>> " xxx ".rstrip()
' xxx'
Strings: método translate
 translate(trans)
 Retorna uma cópia da string onde os caracteres são
substituídos de acordo com a tabela de tradução trans
 trans é uma string com 256 caracteres, um para cada
possível código de oito bits
 Ex.: se trans tem 'X' na posição 65 (correspondente ao
caractere ASCII 'A'), então, na string retornada, todos os
caracteres 'A' terão sido substituídos por 'X'
 Na verdade, as tabelas de tradução são normalmente
construídas com a função maketrans do módulo string
Função string.maketrans
 maketrans (velho, novo)
 retorna uma tabela de tradução onde os caracteres em
velho são substituídos pelos caracteres em novo
 Ex.:
>>> from string import maketrans
>>> trans = maketrans('qs', 'kz’)
>>> s = "que surpresa: quebrei a cara"
>>> s.translate(trans)
'kue zurpreza: kuebrei a cara'

Mais conteúdo relacionado

Mais procurados

Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursaosamuelthiago
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Elaine Cecília Gatto
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
Turorial Básico de Matlab.
Turorial Básico de Matlab. Turorial Básico de Matlab.
Turorial Básico de Matlab. Lourran Freire
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarCRISLANIO MACEDO
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorDafmet Ufpel
 
Aula 06 vetores e matrizes
Aula 06   vetores e matrizesAula 06   vetores e matrizes
Aula 06 vetores e matrizesTácito Graça
 
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
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Tchelinux
 

Mais procurados (18)

05 classes utilitarias
05   classes utilitarias05   classes utilitarias
05 classes utilitarias
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursao
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
1 exercicio de vectores em C
1 exercicio de vectores em C1 exercicio de vectores em C
1 exercicio de vectores em C
 
Ling c
Ling cLing c
Ling c
 
Turorial Básico de Matlab.
Turorial Básico de Matlab. Turorial Básico de Matlab.
Turorial Básico de Matlab.
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
 
Cap09
Cap09Cap09
Cap09
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Java
JavaJava
Java
 
Java: Condicionais
Java: CondicionaisJava: Condicionais
Java: Condicionais
 
FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputador
 
Aula 06 vetores e matrizes
Aula 06   vetores e matrizesAula 06   vetores e matrizes
Aula 06 vetores e matrizes
 
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
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
 

Destaque

007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoesLeandro Barbosa
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listasLeandro Barbosa
 
006 programando em python - dicionarios
006   programando em python - dicionarios006   programando em python - dicionarios
006 programando em python - dicionariosLeandro Barbosa
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivosLeandro Barbosa
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programarrobinhoct
 

Destaque (9)

007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
 
05 listas
05 listas05 listas
05 listas
 
02 while
02 while02 while
02 while
 
006 programando em python - dicionarios
006   programando em python - dicionarios006   programando em python - dicionarios
006 programando em python - dicionarios
 
03 algoritmos basicos
03 algoritmos basicos03 algoritmos basicos
03 algoritmos basicos
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programar
 
Aula02
Aula02Aula02
Aula02
 

Semelhante a 005 programando em python - tuplas e strings

Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python PoliRodrigo Lira
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfEduardoChicoJooJoo
 
aula5 - Manipulação de Strings.pdf
aula5 -  Manipulação de Strings.pdfaula5 -  Manipulação de Strings.pdf
aula5 - Manipulação de Strings.pdfDionatasSantos2
 
Algoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlgoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlex Camargo
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdfAlexSouza974126
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03profwtelles
 
Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Pessoal
 
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
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programaçãoAlysonTrindadeFernan
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listassamuelthiago
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: IntroduçãoWesley R. Bezerra
 
4234 mysql
4234 mysql4234 mysql
4234 mysqlherbam
 

Semelhante a 005 programando em python - tuplas e strings (20)

Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdf
 
aula5 - Manipulação de Strings.pdf
aula5 -  Manipulação de Strings.pdfaula5 -  Manipulação de Strings.pdf
aula5 - Manipulação de Strings.pdf
 
Algoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlgoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de strings
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdf
 
Java4
Java4Java4
Java4
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
 
python
pythonpython
python
 
Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7
 
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
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programação
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listas
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Linguagem C 02 String
Linguagem C 02 StringLinguagem C 02 String
Linguagem C 02 String
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: Introdução
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 

Mais de Leandro Barbosa

Mais de Leandro Barbosa (6)

01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
011 programando em python - conjuntos
011   programando em python - conjuntos011   programando em python - conjuntos
011 programando em python - conjuntos
 
05 biomassa
05 biomassa05 biomassa
05 biomassa
 
python.comandos
python.comandospython.comandos
python.comandos
 
Estrutura cristalina
Estrutura cristalinaEstrutura cristalina
Estrutura cristalina
 
Lista de integração
Lista de integraçãoLista de integração
Lista de integração
 

Último

MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Filosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestre
Filosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestreFilosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestre
Filosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestreLeandroLima265595
 
Formação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSSFormação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSSPedroMatos469278
 
Teatro como estrategias de ensino secundario
Teatro como estrategias de ensino secundarioTeatro como estrategias de ensino secundario
Teatro como estrategias de ensino secundarioWyngDaFelyzitahLamba
 
Currículo Professor Pablo Ortellado - Universidade de São Paulo
Currículo Professor Pablo Ortellado - Universidade de São PauloCurrículo Professor Pablo Ortellado - Universidade de São Paulo
Currículo Professor Pablo Ortellado - Universidade de São Pauloririg29454
 
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxSlides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxLuizHenriquedeAlmeid6
 
SQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfSQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfAndersonW5
 
História concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdfHistória concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdfGisellySobral
 
12_mch9_nervoso.pptx...........................
12_mch9_nervoso.pptx...........................12_mch9_nervoso.pptx...........................
12_mch9_nervoso.pptx...........................mariagrave
 
Modelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresModelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresAna Isabel Correia
 
Acróstico - Maio Laranja
Acróstico  - Maio Laranja Acróstico  - Maio Laranja
Acróstico - Maio Laranja Mary Alvarenga
 
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...Eró Cunha
 
INTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOS
INTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOSINTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOS
INTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOSPedro Luis Moraes
 
ESPANHOL PARA O ENEM (2).pdf questões da prova
ESPANHOL PARA O ENEM (2).pdf questões da provaESPANHOL PARA O ENEM (2).pdf questões da prova
ESPANHOL PARA O ENEM (2).pdf questões da provaANNAPAULAAIRESDESOUZ
 
Sequência didática Carona 1º Encontro.pptx
Sequência didática Carona 1º Encontro.pptxSequência didática Carona 1º Encontro.pptx
Sequência didática Carona 1º Encontro.pptxCarolineWaitman
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfFbioFerreira207918
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Centro Jacques Delors
 

Último (20)

Poema - Aedes Aegypt.
Poema - Aedes Aegypt.Poema - Aedes Aegypt.
Poema - Aedes Aegypt.
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
Filosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestre
Filosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestreFilosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestre
Filosofia - 1º ano - Ensino Médio do ensino médio para primeiro bimestre
 
Formação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSSFormação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSS
 
Teatro como estrategias de ensino secundario
Teatro como estrategias de ensino secundarioTeatro como estrategias de ensino secundario
Teatro como estrategias de ensino secundario
 
Currículo Professor Pablo Ortellado - Universidade de São Paulo
Currículo Professor Pablo Ortellado - Universidade de São PauloCurrículo Professor Pablo Ortellado - Universidade de São Paulo
Currículo Professor Pablo Ortellado - Universidade de São Paulo
 
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxSlides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
 
SQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfSQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdf
 
História concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdfHistória concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdf
 
12_mch9_nervoso.pptx...........................
12_mch9_nervoso.pptx...........................12_mch9_nervoso.pptx...........................
12_mch9_nervoso.pptx...........................
 
Modelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresModelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autores
 
Acróstico - Maio Laranja
Acróstico  - Maio Laranja Acróstico  - Maio Laranja
Acróstico - Maio Laranja
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
 
INTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOS
INTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOSINTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOS
INTRODUÇÃO DE METODOLOGIA PARA TRABALHIOS CIENTIFICOS
 
ESPANHOL PARA O ENEM (2).pdf questões da prova
ESPANHOL PARA O ENEM (2).pdf questões da provaESPANHOL PARA O ENEM (2).pdf questões da prova
ESPANHOL PARA O ENEM (2).pdf questões da prova
 
Sequência didática Carona 1º Encontro.pptx
Sequência didática Carona 1º Encontro.pptxSequência didática Carona 1º Encontro.pptx
Sequência didática Carona 1º Encontro.pptx
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 

005 programando em python - tuplas e strings

  • 2. Tuplas  São estruturas de dados parecidas com listas, mas com a particularidade de serem imutáveis  Tuplas são seqüências e, assim como listas, podem ser indexadas e fatiadas, mas não é possível modificá-las  Um valor do tipo tupla é uma série de valores separados por vírgulas e entre parênteses >>> x = (1,2,3) >>> x (1, 2, 3) >>> x [0] 1 >>> x [0]=1 ... TypeError: object does not support item assignment
  • 3. Tuplas  Uma tupla vazia se escreve ()  Os parênteses são opcionais se não provocarem ambigüidade  Uma tupla contendo apenas um elemento deve ser escrita com uma vírgula ao final  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)
  • 4. A função tuple  Assim como a função list constrói uma lista a partir de uma seqüência qualquer, a função tuple constrói uma tupla a partir de uma seqüência qualquer >>> list("abcd”) ['a', 'b', 'c', 'd'] >>> tuple("abcd”) ('a', 'b', 'c', 'd’)) >>> tuple([1,2,3]) (1, 2, 3) >>> list((1,2,3)) [1, 2, 3]
  • 5. Quando usar tuplas  Em geral, tuplas podem ser substituídas com vantagem por listas  Entretanto, algumas construções em Python requerem tuplas ou seqüências imutáveis, por exemplo:  Tuplas (ao contrário de listas) podem ser usadas como chaves de dicionários  Funções com número variável de argumentos acessam os argumentos por meio de tuplas  O operador de formatação aceita tuplas, mas não listas
  • 6. O operador de formatação  Strings suportam o operador % que, dada uma string especial (template) e um valor, produz uma string formatada  O formato geral é  template % valor  O template é uma string entremeada por códigos de formatação  Um código de formatação é em geral composto do caracter % seguido de uma letra descritiva do tipo do valor a formatar (s para string, f para float, d para inteiro, etc)  Exemplo: >>> '====%d====' % 100 '====100====' >>> '====%f====' % 1 '====1.000000===='
  • 7. Formatando tuplas  Um template pode ser aplicado aos diversos valores de uma tupla para construir uma string formatada  Ex.: >>> template = "%s tem %d anos" >>> tupla = ('Pedro', 10) >>> template % tupla 'Pedro tem 10 anos'  Obs: mais tarde veremos que o operador de formatação também pode ser aplicado a dicionários
  • 8. Anatomia das especificações de formato  Caracter %  Flags de conversão (opcionais):  - indica alinhamento à esquerda  + indica que um sinal deve preceder o valor convertido  “ ” (um branco) indica que um espaço deve preceder números positivos  0 indica preenchimento à esquerda com zeros  Comprimento mínimo do campo (opcional)  O valor formatado terá este comprimento no mínimo  Se igual a * (asterisco), o comprimento será lido da tupla  Um “.” (ponto) seguido pela precisão (opcional)  Usado para converter as casas decimais de floats  Se aplicado para strings, indica o comprimento máximo  Se igual a *, o valor será lido da tupla  Caracter indicador do tipo de formato
  • 9. Tipos de formato  d, i Número inteiro escrito em decimal  o Número inteiro sem sinal escrito em octal  u Número inteiro sem sinal escrito em decimal  x Número inteiro sem sinal escrito em hexadecimal (minúsculas)  X Número inteiro sem sinal escrito em hexadecimal (maiúsculas)  e Número de ponto flutuante escrito em notação científica ('e' minúsculo)  E Número de ponto flutuante escrito em notação científica ('E' maiúsculo)  f, F Número de ponto flutuante escrito em notação convencional  g Mesmo que e se expoente é maior que -4. Caso contrario, igual a f  G Mesmo que E se expoente é maior que -4. Caso contrario, igual a F  C Caractere único (usado com inteiro ou string de tamanho 1)  r String (entrada é qualquer objeto Python que é convertido usando a função repr)
  • 10. Exemplos >>> "Numero inteiro: %d" % 55 'Numero inteiro: 55' >>> "Numero inteiro com 3 casas: %3d" % 55 'Numero inteiro com 3 casas: 55' >>> "Inteiro com 3 casas e zeros a esquerda: %03d" % 55 'Inteiro com 3 casas e zeros a esquerda: 055' >>> "Inteiro escrito em hexadecimal: %x" % 55 'Inteiro escrito em hexadecimal: 37' >>> from math import pi >>> "Ponto flutuante: %f" % pi 'Ponto flutuante: 3.141593' >>> "Ponto flutuante com 12 decimais: %.12f" % pi 'Ponto flutuante com 12 decimais: 3.141592653590' >>> "Ponto flutuante com 10 caracteres: %10f" % pi 'Ponto flutuante com 10 caracteres: 3.141593' >>> "Ponto flutuante em notacao cientifica: %10e" % pi 'Ponto flutuante em notacao cientifica: 3.141593e+00' >>> "String com tamanho maximo definido: %.3s" % "Pedro" 'String com tamanho maximo definido: Ped'
  • 11. Exemplo: Imprimindo uma tabela Itens = ["Abacate", "Limão", "Tangerina", "Melancia”, "Laranja da China"] precos = [2.13, 0.19, 1.95, 0.87, 12.00] len_precos = 10 # Coluna de precos tem 10 caracteres # Achar a largura da coluna de itens len_itens = len(itens[0]) for it in itens : len_itens = max(len_itens,len(it)) # Imprimir tabela de precos print "-"*(len_itens+len_precos) print "%-*s%*s" % (len_itens, "Item", len_precos, "Preço”) print "-"*(len_itens+len_precos) for i in range(len(itens)): print "%-*s%*.2f" % (len_itens, itens[i],len_precos, precos[i])
  • 13. O Módulo String  Manipulação de strings é uma atividade freqüente em programas Python  Existe um módulo chamado string que contém uma grande quantidade de funcionalidades para trabalhar com strings  Para usá-las: from string import *  Entretanto, strings pertencem à classe str e a maior parte do que existe no módulo string aparece como métodos da classe str
  • 14. Strings: método find  find (substring, inicio, fim)  Retorna o índice da primeira ocorrência de substring  inicio e fim são opcionais e indicam os intervalos de índices onde a busca será efetuada  Os defaults são 0 e o comprimento da string, respectivamente  Caso substring não apareça na string, é retornado -1  Observe que o operador in pode ser usado para dizer se uma substring aparece numa string
  • 15. Strings: método find (exemplo)‫‏‬ >>> s = "quem parte e reparte, fica com a maior parte" >>> s.find("parte”) 5 >>> s.find("reparte”) 13 >>> s.find("parcela”) -1 >>> "parte" in s True >>> s.find("parte",6) 15 >>> s.find("parte",6,12) -1
  • 16. Strings: método join  join(seqüência)  Retorna uma string com todos os elementos da seqüência concatenados  Obs: Os elementos da seqüência têm que ser strings  A string objeto é usada como separador entre os elementos  Ex.: >>> "/".join(("usr","bin","python")) 'usr/bin/python' >>> "Q".join((1,2,3,4,5)) ... TypeError: sequence item 0: expected string, int found >>> "Q".join(('1','2','3','4','5')) '1Q2Q3Q4Q5'
  • 17. Strings: métodos lower e upper  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  Ex.: >>> print "Esperança".upper() ESPERANÇA >>> print "Pé de Laranja Lima".lower() pé de laranja lima
  • 18. Strings: método replace  replace(velho,novo,n)  Substitui as instâncias da substring velho por novo  Se n for especificado, apenas n instâncias são trocadas  Caso contrário, todas as instâncias são trocadas  Ex.: >>> s = "quem parte e reparte, fica com a maior parte" >>> s.replace("parte","parcela”) 'quem parcela e reparcela, fica com a maior parcela' >>> s.replace("parte","parcela",2) 'quem parcela e reparcela, fica com a maior parte'
  • 19. Strings: método split  split(separador)  Retorna uma lista com as substrings presentes entre cópias da string separador  Faz o contrário do método join  Se separador não for especificado, é assumido seqüências de caracteres em branco, tabs ou newlines  Ex.: >>> s = "xxx yyy zzz xxx yyy zzz" >>> s.split() ['xxx', 'yyy', 'zzz', 'xxx', 'yyy', 'zzz'] >>> s.split('xxx’) ['', ' yyy zzz ', ' yyy zzz']
  • 20. Strings: método strip  strip(ch)  Retorna a string sem caracteres iniciais ou finais que estejam na string ch  Se ch não for especificada, retira caracteres em branco  Pode-se também usar rstrip() para retirar caracteres à direita (final) ou lstrip() para retirar caracteres à esquerda (início)  Ex.: >>> " xxx afdsfa ".strip() 'xxx afdsfa' >>> "xxx yyy zzz xxx".strip("xy ”) 'zzz' >>> " xxx ".rstrip() ' xxx'
  • 21. Strings: método translate  translate(trans)  Retorna uma cópia da string onde os caracteres são substituídos de acordo com a tabela de tradução trans  trans é uma string com 256 caracteres, um para cada possível código de oito bits  Ex.: se trans tem 'X' na posição 65 (correspondente ao caractere ASCII 'A'), então, na string retornada, todos os caracteres 'A' terão sido substituídos por 'X'  Na verdade, as tabelas de tradução são normalmente construídas com a função maketrans do módulo string
  • 22. Função string.maketrans  maketrans (velho, novo)  retorna uma tabela de tradução onde os caracteres em velho são substituídos pelos caracteres em novo  Ex.: >>> from string import maketrans >>> trans = maketrans('qs', 'kz’) >>> s = "que surpresa: quebrei a cara" >>> s.translate(trans) 'kue zurpreza: kuebrei a cara'