SlideShare uma empresa Scribd logo
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'

Mais conteúdo relacionado

PDF
005 programando em python - tuplas e strings
PDF
Programando em python tipos basicos
PDF
python.tipos
PDF
05 programando em python - tuplas e strings
PDF
Vetores, Matrizes e Strings em C Parte 3
PDF
Haskell aula2 tipos-e-classes
PDF
Vetores, Matrizes e Strings em C Parte 1
PDF
Programando em python recursao
005 programando em python - tuplas e strings
Programando em python tipos basicos
python.tipos
05 programando em python - tuplas e strings
Vetores, Matrizes e Strings em C Parte 3
Haskell aula2 tipos-e-classes
Vetores, Matrizes e Strings em C Parte 1
Programando em python recursao

Mais procurados (17)

PPTX
05 classes utilitarias
PPT
Strings e manipulação de variáveis
PPTX
Linguagem C - Vetores, Matrizes e Funções
PPT
Trabalho vetores
PDF
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
PDF
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
PDF
Cap09
PDF
Estrutura de Dados - Ponteiros
PPT
1 exercicio de vectores em C
PPTX
Linguagem C - Vetores
PDF
Apostila php 01
DOCX
Exemplos registros e funções
PPTX
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
PDF
Introdução a linguagem Python 2.7
PDF
Java 05
05 classes utilitarias
Strings e manipulação de variáveis
Linguagem C - Vetores, Matrizes e Funções
Trabalho vetores
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Cap09
Estrutura de Dados - Ponteiros
1 exercicio de vectores em C
Linguagem C - Vetores
Apostila php 01
Exemplos registros e funções
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
Introdução a linguagem Python 2.7
Java 05
Anúncio

Destaque (20)

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

Semelhante a Programando em python tuplas e strings (20)

PPT
005 - Programando em Python - Tuplas e Strings.ppt
PPT
002 - Programando em Python - Tipos Basicos.ppt
PDF
Introdução a Python - Python Poli
PDF
minicurso-python-getmeeting.pdf
PDF
PDF
Canivete shell
PDF
Canivete shell
PPTX
Curso de Java Capítulo 2 - Aprendendo Novas Técnicas
PDF
unidade04-c3-handout.pdf
PDF
aula5 - Manipulação de Strings.pdf
PDF
004 programando em python - listas
PDF
4234 mysql
PDF
Algoritmos e Programação: Manipulação de strings
PDF
Programando em python listas
PDF
Python: a primeira mordida
ODP
Pymordida0 Semana de computação da SOCIESC - 2008/10
PDF
Python Class
PDF
STRINGS EM java para java em javaA02_Strings.pdf
PDF
Curso de ShellScript - Lm09 shellscript9
005 - Programando em Python - Tuplas e Strings.ppt
002 - Programando em Python - Tipos Basicos.ppt
Introdução a Python - Python Poli
minicurso-python-getmeeting.pdf
Canivete shell
Canivete shell
Curso de Java Capítulo 2 - Aprendendo Novas Técnicas
unidade04-c3-handout.pdf
aula5 - Manipulação de Strings.pdf
004 programando em python - listas
4234 mysql
Algoritmos e Programação: Manipulação de strings
Programando em python listas
Python: a primeira mordida
Pymordida0 Semana de computação da SOCIESC - 2008/10
Python Class
STRINGS EM java para java em javaA02_Strings.pdf
Curso de ShellScript - Lm09 shellscript9

Mais de samuelthiago (20)

PPTX
Eclipse i (1)
PPTX
Html básico
PPTX
Interface grafica em_java_parte_v
PPTX
Interface grafica em_java_parte_iv
PPTX
Interface grafica em_java_parte_iii
PPTX
Interface grafica em_java_parte_ii
PPTX
Interface grafica em_java_parte_i
PPTX
Poo interacao entre_objetos_blue_j_ii
PPTX
Introducao a poo_com_blue_j
PPT
Projeto calculadora em_java
PPT
Introducao a poo_com_blue_j
PDF
01 02 introdução aos bancos de dados (slides)
PDF
Java 08
PDF
Java 07
PDF
Java 06
PDF
Java 04
PDF
Java 03
PDF
Java 02
PDF
Java 01
PDF
Pged 08
Eclipse i (1)
Html básico
Interface grafica em_java_parte_v
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_i
Poo interacao entre_objetos_blue_j_ii
Introducao a poo_com_blue_j
Projeto calculadora em_java
Introducao a poo_com_blue_j
01 02 introdução aos bancos de dados (slides)
Java 08
Java 07
Java 06
Java 04
Java 03
Java 02
Java 01
Pged 08

Último (16)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Arquitetura de computadores - Memórias Secundárias
COBITxITIL-Entenda as diferença em uso governança TI
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express

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'