SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Python:
Tuplas e Strings



  Claudio Esperança
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 provocar 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 podem ser usadas como chaves de dicionários
      mas listas não podem
     Funções com número variável de argumentos têm
      acesso a esses 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 uma 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
     caractere % seguido de uma letra descritiva do tipo de 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
   Caractere %
   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

   Caractere 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'

Weitere ähnliche Inhalte

Was ist angesagt?

Strings e manipulação de variáveis
Strings e manipulação de variáveisStrings e manipulação de variáveis
Strings e manipulação de variáveis111111119
 
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
 
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
 
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
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
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
 

Was ist angesagt? (17)

05 classes utilitarias
05   classes utilitarias05   classes utilitarias
05 classes utilitarias
 
Strings e manipulação de variáveis
Strings e manipulação de variáveisStrings e manipulação de variáveis
Strings e manipulação de variáveis
 
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
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
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...
 
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
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Ling c
Ling cLing c
Ling c
 
1 exercicio de vectores em C
1 exercicio de vectores em C1 exercicio de vectores em C
1 exercicio de vectores em C
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
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 linguagem Python 2.7
Introdução a linguagem Python 2.7Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7
 
Java 05
Java 05Java 05
Java 05
 
Java
JavaJava
Java
 

Andere mochten auch

Contabilidad y costos s14
Contabilidad y costos s14Contabilidad y costos s14
Contabilidad y costos s14Maestros Online
 
Matematicas i 09101 2013
Matematicas i 09101 2013Matematicas i 09101 2013
Matematicas i 09101 2013Maestros Online
 
Direccion y liderazgo 2013
Direccion y liderazgo 2013Direccion y liderazgo 2013
Direccion y liderazgo 2013Maestros Online
 
Contabilidad administrativa 2013
Contabilidad administrativa 2013Contabilidad administrativa 2013
Contabilidad administrativa 2013Maestros Online
 
Oficina das maes Therezina FPares maio 2012
Oficina das maes Therezina FPares maio 2012Oficina das maes Therezina FPares maio 2012
Oficina das maes Therezina FPares maio 2012Rosane Ribeiro
 
Diseño de la investigacion
Diseño de la investigacionDiseño de la investigacion
Diseño de la investigacionMaestros Online
 
Balada da União Maio'12
Balada da União Maio'12Balada da União Maio'12
Balada da União Maio'12Lili Nabais
 
Proyecto integrador de proyectos y plantas
Proyecto integrador de proyectos y plantasProyecto integrador de proyectos y plantas
Proyecto integrador de proyectos y plantasMaestros Online
 
Investigación de mercados ss13
Investigación de mercados ss13Investigación de mercados ss13
Investigación de mercados ss13Maestros Online
 
A galinha palmira
A galinha palmira   A galinha palmira
A galinha palmira eb1sininhos
 
Anexo 9 investigação tic
Anexo 9   investigação ticAnexo 9   investigação tic
Anexo 9 investigação ticTelma Sá
 
451Research_Report_NSX_DRaaS_2016
451Research_Report_NSX_DRaaS_2016451Research_Report_NSX_DRaaS_2016
451Research_Report_NSX_DRaaS_2016Rich Schaedler
 
Control estadistico de calidad cd09103 2012
Control estadistico de calidad cd09103 2012Control estadistico de calidad cd09103 2012
Control estadistico de calidad cd09103 2012Maestros Online
 

Andere mochten auch (20)

Contabilidad y costos s14
Contabilidad y costos s14Contabilidad y costos s14
Contabilidad y costos s14
 
Matematicas i 09101 2013
Matematicas i 09101 2013Matematicas i 09101 2013
Matematicas i 09101 2013
 
Lucernário
LucernárioLucernário
Lucernário
 
Direccion y liderazgo 2013
Direccion y liderazgo 2013Direccion y liderazgo 2013
Direccion y liderazgo 2013
 
Contabilidad administrativa 2013
Contabilidad administrativa 2013Contabilidad administrativa 2013
Contabilidad administrativa 2013
 
Oficina das maes Therezina FPares maio 2012
Oficina das maes Therezina FPares maio 2012Oficina das maes Therezina FPares maio 2012
Oficina das maes Therezina FPares maio 2012
 
Bases de datos s14
Bases de datos s14Bases de datos s14
Bases de datos s14
 
Diseño de la investigacion
Diseño de la investigacionDiseño de la investigacion
Diseño de la investigacion
 
Balada da União Maio'12
Balada da União Maio'12Balada da União Maio'12
Balada da União Maio'12
 
Proyecto integrador de proyectos y plantas
Proyecto integrador de proyectos y plantasProyecto integrador de proyectos y plantas
Proyecto integrador de proyectos y plantas
 
Instrumentacion
InstrumentacionInstrumentacion
Instrumentacion
 
Matematicas Y Fisica 2
Matematicas Y Fisica 2Matematicas Y Fisica 2
Matematicas Y Fisica 2
 
Investigación de mercados ss13
Investigación de mercados ss13Investigación de mercados ss13
Investigación de mercados ss13
 
A galinha palmira
A galinha palmira   A galinha palmira
A galinha palmira
 
Slide regionalização cópia
Slide regionalização   cópiaSlide regionalização   cópia
Slide regionalização cópia
 
Anexo 9 investigação tic
Anexo 9   investigação ticAnexo 9   investigação tic
Anexo 9 investigação tic
 
O que significa ser pobre
O que significa ser pobreO que significa ser pobre
O que significa ser pobre
 
451Research_Report_NSX_DRaaS_2016
451Research_Report_NSX_DRaaS_2016451Research_Report_NSX_DRaaS_2016
451Research_Report_NSX_DRaaS_2016
 
Matematicas ii 09102
Matematicas ii 09102Matematicas ii 09102
Matematicas ii 09102
 
Control estadistico de calidad cd09103 2012
Control estadistico de calidad cd09103 2012Control estadistico de calidad cd09103 2012
Control estadistico de calidad cd09103 2012
 

Ähnlich wie 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
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdfAlexSouza974126
 
aula5 - Manipulação de Strings.pdf
aula5 -  Manipulação de Strings.pdfaula5 -  Manipulação de Strings.pdf
aula5 - Manipulação de Strings.pdfDionatasSantos2
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listasLeandro Barbosa
 
4234 mysql
4234 mysql4234 mysql
4234 mysqlherbam
 
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
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listassamuelthiago
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
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
 
Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Pessoal
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª msJoelsa Soares
 

Ähnlich wie 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
 
python
pythonpython
python
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdf
 
aula5 - Manipulação de Strings.pdf
aula5 -  Manipulação de Strings.pdfaula5 -  Manipulação de Strings.pdf
aula5 - Manipulação de Strings.pdf
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
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
 
Programando em python listas
Programando em python   listasProgramando em python   listas
Programando em python listas
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
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
 
Python Class
Python ClassPython Class
Python Class
 
Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9
 
Python
PythonPython
Python
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª ms
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 

Mehr von samuelthiago

Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_vsamuelthiago
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_ivsamuelthiago
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iiisamuelthiago
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_iisamuelthiago
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_isamuelthiago
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iisamuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_jsamuelthiago
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_javasamuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_jsamuelthiago
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)samuelthiago
 

Mehr von samuelthiago (20)

Eclipse i (1)
Eclipse i (1)Eclipse i (1)
Eclipse i (1)
 
Html básico
Html básicoHtml básico
Html básico
 
Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
 
Java 08
Java 08Java 08
Java 08
 
Java 07
Java 07Java 07
Java 07
 
Java 06
Java 06Java 06
Java 06
 
Java 04
Java 04Java 04
Java 04
 
Java 03
Java 03Java 03
Java 03
 
Java 02
Java 02Java 02
Java 02
 
Java 01
Java 01Java 01
Java 01
 
Pged 08
Pged 08Pged 08
Pged 08
 

Programando em python tuplas e strings

  • 1. Python: Tuplas e Strings Claudio Esperança
  • 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 provocar 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 podem ser usadas como chaves de dicionários mas listas não podem  Funções com número variável de argumentos têm acesso a esses 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 uma 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 caractere % seguido de uma letra descritiva do tipo de 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  Caractere %  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  Caractere 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])
  • 12. Exemplo: resultados -------------------------- Item Preço -------------------------- Abacate 2.13 Limão 0.19 Tangerina 1.95 Melancia 0.87 Laranja da China 12.00
  • 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'