terça-feira, 3 de abril de 2018

Introdução 5

Características iniciais - 5ª Parte

Continuando... Tipos de Dados...

Texto:

O Python fornece o tipo string para armazenar texto. São imutáveis, isto é, para realizar alguma operação com uma string, é necessária criar nova string. Uma string pode ser definida entre aspas simples ou entre aspas duplas.
Tipos de strings:
  • String padrão: s = 'Led Zeppelin'
  • String unicode: u = u'Björk'
Operações com Strings.
Exemplo:
# Concatenação
s = 'Carro'
print( 'Meu ' + s + ' é prata!')
#Meu Carro é prata!

# Interpolação
print( 'tamanho de %s => %d' % (s, len(s)))
#tamanho de Carro => 5

# String tratada como sequência
for ch in s: print(ch)
#C
#a
#r
#r
#o

# Strings são objetos (possui diversos métodos)
if s.startswith('C'): print(s.upper())
#CARRO

print(3 * s)
# 3 * s é consistente com s + s + s
#CarroCarroCarro
--------------------------------------------------------------------
Interpolação de Strings:

O Operador “%” é usado para fazer interpolação de strings. A interpolação é mais eficiente no uso de memória do que a concatenação convencional. Símbolos usados na interpolação:
  • %s: string.
  • %d: inteiro.
  • %o: octal.
  • %x: hexadecimal.
  • %f: real.
  • %e: real exponencial.
  • %%: sinal de percentagem.
Exemplos:
# Zeros a esquerda
print('Agora são %02d:%02d.' % (6, 30))
#Agora são 06:30.
print('Agora são %02d:%02d.' % (16, 30))
#Agora são 16:30.

# Real (número após o ponto controla as casas decimais)
print('Percentagem: %.1f%%, Exponencial:%.2e' % (5.333, 0.00314))
#Percentagem: 5.3%, Exponencial:3.14e-03

# Octal e hexadecimal
print('Decimal: %d, Octal: %o, Hexadecimal: %x' % (10, 10, 10))
# Decimal: 10, Octal: 12, Hexadecimal: a

Há outra forma de interpolação: a função format() de string.
Exemplos:
musicos = [('Page', 'guitarrista', 'Led Zeppelin'), ('Fripp', 'guitarrista', 'King Crimson')]

# Parâmetros identificados pela ordem
msg = '{0} é {1} do {2}'
for nome, funcao, banda in musicos:
    print(msg.format(nome, funcao, banda))
    #Page é guitarrista do Led Zeppelin
    #Fripp é guitarrista do King Crimson

# Parâmetros identificados pelo nome
msg = '{saudacao}, são {hora:02d}:{minuto:02d}'
print (msg.format(saudacao='Bom dia', hora=7, minuto=30))
#Bom dia, são 07:30

# Função built-in format()
print ('Pi =', format(3.14159, '.3e'))
#Pi = 3.142e+00

Format() pode ser usada para formatar apenas um dado por vez. 
--------------------------------------------------------------------
Fatias de strings (slices):

Podem ser obtidas colocando índices entre colchetes após a string.
Os índices no Python:
  • Começam em 0.
  • Contam a partir do fim se forem negativos.
  • Podem ser definidos como trechos:
    • Na forma [posição inicial: tamanho (fim +1) : intervalo]. 
    • Se não for definido o inicio, será considerado como 0. 
    • Se não for definido o tamanho, será considerado o tamanho do objeto. 
    • Se não for definido o intervalo (entre caracteres), será 1.
Exemplos:
texto="Python"
print(texto[0])
#P
print(texto[1])
#y
print(texto[5])
#n
print(texto[-1])
#n
print(texto[-2])
#o
print(texto[-6])
#P
print(texto[:2])
#Py
print(texto[2:])
#thon
print(texto[6])
#string index out of range
print(texto[0:5+1:2])
#Pto

Operações com intervalo negativo:
print ('Python'[::-1])
#nohtyP
print (texto[::-2])
#nhy
--------------------------------------------------------------------
Vários conteúdos para tratar com texto estão no módulo string, como funções e até um tipo de dado chamado Template, que é um modelo
de string que pode ser preenchido através de um dicionário. Os
identificadores são inciados por cifrão ($) e podem ser cercados por chaves, para evitar confusões.

Exemplos:
# importa o módulo string
import string
# O alfabeto
a = string.ascii_letters
print(a)
#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

#Executa o alfabeto um caractere para a esquerda
b = a[1:] + a[0]
print(b)
#bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZa

#Cria uma string template
st = string.Template('$aviso aconteceu em $quando')

#Preenche o modelo com um dicionário
s = st.substitute({'aviso': 'Falta de eletricidade', 'quando': '03 de Abril de 2018'})
print (s)
#Falta de eletricidade aconteceu em 03 de Abril de 2018
--------------------------------------------------------------------

Nenhum comentário:

Postar um comentário