Cadeia ou sequência de caracteres (String)¶

Strings são sequências de caracteres, geralmente utilizadas para representar informações como:

  • Uma palavra: "Hoje"
  • O nome de uma pessoas: "João Carlos de Oliveira"
  • O endereço de uma casa: "Rua Sobe e Desce, nº 453"
  • Uma frase ou texto: "Tudo vale a pena se a alma não é pequena."
  • Um conjunto de dados: "João Carlos de Oliveira; 8,35; 7,98; 8,15"

Strings em Python são imutáveis (depois de criados não há como alterá-los), podendo ser escritos de várias formas, a exemplo de:

  1. Delimitado com aspas simples:

'Rua Sobe e Desce, nº 453'

  1. Delimitado com aspas duplas:

"Marca D'água"

  1. Delimitado com três aspas simples:

'''Rua Sobe e Desce, nº 453'''

  1. Delimitado com três aspas duplas:

"""Rua Sobe e Desce, nº 453"""

Operações básicas com Strings¶

In [ ]:
# Imprimir (apresentar) uma string
print('Olá João')
In [ ]:
# Atribuir a uma variável e, em seguida, imprimir o valor atribuído à variável

nome = 'João Carlos de Oliveira'
print(nome)
In [ ]:
# Obter o tamanho (nº de caracteres) de uma string utilizando função "len",
#    que é uma abreviatura de "length" => "comprimento"
# Note que o espaço em branco também conta com um caracter

tamanho = len('Hoje é o dia')
print(tamanho)
In [ ]:
# Imprimir uma sequência de strings

print('Frase 1')
print('Frase 2')
print('Frase com \n quebra de linha')
print('Última linha')

# A contra barra "\" é utilizada para modificar o significado (semântica) da letra que a sucede.
# No exemplo acima, a sequência '\n' representa um caracter especial chamado de "new line" => "nova linha"

Concatenação de strings¶

Uma das operações mais tipicamente realizadas com strings é a concatenação ou justaposição de dois strings para gerar um terceiro, a exemplo da expressão:

"João Luiz" + "Saldanha"

que resulta na string:

"João LuizSaldanha"

In [ ]:
# Concatenar (justapor) strings para formar uma nova string.
# Quando aplicado sobre números o operador "+" representa a operação aritmética de adição.
# Mas quando aplicado sobre strings sua semântica muda, passando a representar a operação de concatenação.

nome = "João"
mes = 'abril'

frase = "O mês de nascimento de " + nome + " é " + mes + " deste ano"

# resulta na atribuição da string "O mês de nascimento de João é abril deste ano" à variável frase
In [ ]:
# Note que se tentarmos escrever algo como

dia = 23
frase = "João nasceu no dia " + dia + " deste mês"
 
# ocorrerá um erro uma vez que o valor previamente atribuído à variável dia é um número inteiro, e não uma string, ocasionando falha na concatenção.
# Para resolver isso podemos converter o número para string utilizando a função "str", conforme abaixo:

frase = "João nasceu no dia " + str(dia) + " deste mês"
In [ ]:
# Concatenar à esquerda

s = "ABC"
s = s + "123"

#resulta no string "ABC123" ser atribuído à variável s

# Note que a expressão de concatenação acima pode ser também escrita como:

s += "123"
In [ ]:
# Concatenar à direita

s = "ABC"
s = "123" + s

#resulta no string "123ABC" ser atribuído à variável s
In [ ]:
# Repetir uma letra utilizando o operador "*"

letra = 'Zeta'
s = letra * 5

#resulta no string "ZetaZetaZetaZetaZeta" ser atribuído à variável s

# O operador "*" sobre números inteiro corresponde ao operador aritmético de multiplicação.
# Mas quando aplicado sobre uma string, causa a concatenação repetida da string.

Formatar de strings¶

A operação de concatenação nem sempre é a mais indicada ou preferível de formatar strings. Há mais de uma forma de formatar strings em Python, sendo apresentada abaixo a mais usual, um recurso chamado de f-strings (note que a string é prescedida por f e as variáveis são escritas entre chaves na string).

In [ ]:
# Formatando strings com f-strings

dia = 12
mes = "junho"
ano = 2022

hoje = f"Hoje é dia {dia} de {mes} de {ano}"

# Ao preceder a string com a letra "f", significa que a string será formatada, 
# resultando na substituição do termos entre chaves pelos correspondentes valores.
# Assim, no exemplo acima a string "Hoje é dia 12 de junho de 2022" será atribuída à variavel hoje.
In [ ]:
# Dentro de {} também é possível definir o tamanho (número de caracteres) total do campo

saltador = 'Luiz'
salto = 7.8

print(f"O saltador {saltador:10} saltou {salto:7}")

# resulta na impressão da string "O saltador Luiz       saltou     7.8"
# Note que foram incluídos vários espaços em branco após o nome "Luiz" até chegar a 10 caracteres.
# No caso do número 7.8, os espaços em brancos foram prefixados ao valor até chegar a 7.
In [ ]:
# É possível também definir outros detalhes, a exemplo do número de casas decimais para o caso de valores reais

saltador = 'Luiz'
salto = 7.8

print(f"O saltador {saltador:10} saltou {salto:7.2f}")

# resulta na impresão da string "O saltador Luiz       saltou    7.80"
# na qual o valor 7.8 foi formatado para ser apresentado com 2 casas decimais
In [ ]:
# Exemplo de formatação para o valor de PI.
import math

pi = math.pi

print(f"O valor de PI é {pi}")
# resulta na impressão da string "O valor de PI é 3.141592653589793"

print(f"O valor de PI é {pi:.2f}")
# resulta na impressão da string "O valor de PI é 3.14"

print(f"O valor de PI é {pi:.4f}")
# resulta na impressão da string "O valor de PI é 3.1416"

# Note que os valores são arredondados na correspondente casa decimal.

Saber mais sobre formatação de strings