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'
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.
# 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.
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 rangeprint(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