⬅ Voltar ao Dashboard Capítulo 3 — Variáveis e Entrada

🔡 Variáveis String

Seção 3.4 — Textos, índices, concatenação, composição e fatiamento

📝 O que são strings?

Strings armazenam cadeias de caracteres: letras, números, símbolos, espaços. Imagine como uma sequência de blocos, onde cada caractere ocupa uma posição:

J
o
ã
o
e
M
a
r
i
a
0
1
2
3
4
5
6
7
8
9
10
11

Os índices começam em 0, não em 1! A função len() retorna o tamanho:

len()>>> print(len("A")) 1 >>> print(len("AB")) 2 >>> print(len("")) # string vazia 0 >>> print(len("O rato roeu a roupa")) 19

📍 Acessando caracteres por índice

Você pode acessar um caractere individual usando seu índice entre colchetes: variavel[indice]. Se tentar um índice fora do intervalo, Python gera um erro:

Listagem 3.8>>> a = "ABCDEF" >>> print(a[0]) A >>> print(a[1]) B >>> print(a[5]) F >>> print(a[6]) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range >>> print(len(a)) 6

A string "ABCDEF" tem 6 caracteres (posições 0 a 5). Tentar acessar a posição 6 — que não existe — gera um IndexError.

🔗 Concatenação e repetição

Use + para juntar strings e * para repetir:

Listagem 3.9>>> s = "ABC" >>> print(s + "C") ABCC >>> print(s + "D" * 4) ABCDDDD >>> print("X" + "-" * 10 + "X") X----------X >>> print("A" * 3) AAA

🎨 Composição com %

Para montar mensagens com variáveis, usamos marcadores de posição:

MarcadorTipo
%dNúmeros inteiros
%sStrings (textos)
%fNúmeros decimais

Para inteiros, o marcador %d aceita modificações: %03d preenche com zeros à esquerda, %3d preenche com espaços, %-3d alinha à esquerda:

Listagem 3.10>>> idade = 22 >>> print("[%d]" % idade) [22] >>> print("[%03d]" % idade) [022] >>> print("[%3d]" % idade) [ 22] >>> print("[%-3d]" % idade) [22 ]

Para números decimais, %5f reserva 5 posições no total e %5.2f reserva 5 posições com 2 casas decimais:

Listagem 3.11>>> print("%5f" % 5) 5.000000 >>> print("%5.2f" % 5) 5.00 >>> print("%10.5f" % 5) 5.00000

Combinando tudo, podemos montar mensagens completas com várias variáveis de tipos diferentes:

Listagem 3.12>>> nome = "João" >>> idade = 22 >>> grana = 51.34 >>> print("%s tem %d anos e R$%5.2f no bolso." % (nome, idade, grana)) João tem 22 anos e R$51.34 no bolso.

O %5.2f significa: reserve 5 posições, com 2 casas decimais. Muito útil para valores monetários!

✂ Fatiamento (slicing)

Extraia pedaços de uma string usando [início:fim]. O caractere na posição fim não é incluído:

Listagem 3.13-3.14>>> s = "ABCDEFGHI" >>> print(s[0:2]) # posições 0 e 1 AB >>> print(s[2:4]) # posições 2 e 3 CD >>> print(s[:2]) # do início até 2 AB >>> print(s[1:]) # de 1 até o fim BCDEFGHI >>> print(s[:]) # cópia completa ABCDEFGHI >>> print(s[-1:]) # último caractere I >>> print(s[-5:7]) # índices negativos! EFG

💡 Índices negativos contam de trás para frente: -1 é o último, -2 o penúltimo, etc.