Strings no Python: o que são, métodos e exemplos

Cansado de programar?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Projetos práticos

Projetos práticos voltados para o mercado de trabalho

Prática profissional

Formação moderna com foco na prática profissional

Download do Artigo

Resposta rápida

Uma string (tipo str) é uma sequência imutável de caracteres escrita entre aspas: nome = "Python". Ela guarda texto, aceita índice e fatiamento (s[0:6]) e tem métodos como upper(), lower(), split() e join(), que sempre devolvem uma string nova.

1
2
3
4
5
6
s = "Python Academy"
print(s[0:6])                     # Python
print(len(s))                     # 14
print(s.upper())                  # PYTHON ACADEMY
print(s.split())                  # ['Python', 'Academy']
print("-".join(["a", "b", "c"]))  # a-b-c

Resumo em 30 segundos:

  • Índices começam em 0 e s[-1] é o último caractere.
  • No fatiamento s[inicio:fim] o fim não entra.
  • Strings são imutáveis: s[0] = "J" gera TypeError, e métodos como s.upper() retornam uma string nova (atribua o resultado).
  • input() sempre retorna str: se o usuário digitar 3, quantidade * 2 resulta em "33". Converta com int().
  • + só junta str com str. Para misturar texto e números, use f-string ou str().

Salve Salve Pythonista!

Nesse post você vai aprender tudo sobre as Strings no Python:

  • O que são strings e como defini-las
  • Como funciona a indexação e o fatiamento de strings
  • Por que strings são imutáveis
  • Operações entre strings, split() e join()
  • Os principais métodos de string, com tabela de exemplos
  • Formatação de strings com format() e f-strings
  • Erros comuns e exercícios resolvidos no estilo de prova

Então se prepara, faz seu café e vamos nessa!

Vá Direto ao Assunto…

Introdução

Uma string é um tipo de dados usado para armazenar informações de texto. Em programação, o termo vale para qualquer linguagem: string (do inglês “fileira”, “cordão”) é uma fileira de caracteres tratada como um valor só. No Python, esse tipo se chama str.

Seus valores são compostos por uma sequência de caracteres, podendo conter números, letras, espaços e pontuações. Atenção: "42" entre aspas é texto, não número. Se quiser revisar a diferença entre str, int, float e bool, veja o post sobre tipos de variáveis no Python.

As strings em Python são sempre colocadas entre aspas simples ou aspas duplas.

Para o Python ‘Jornada Python’ é a mesma coisa que “Jornada Python”.

Agora vamos atribuir nossa string a uma variável e visualizar seu tipo de dado:

1
2
3
4
5
texto1 = 'Olá mundo'
texto2 = "Olá mundo"

print(texto1)
print(type(texto2))

Quando a saída de um type for str, saiba que é uma string:

1
2
Olá mundo
<class 'str'>

Também é possível criar Strings multilinhas utilizando três aspas, simples ou duplas:

1
2
3
4
5
6
7
8
9
multilinha_dupla = """
Is simply dummy text of the printing and typesetting industry
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and scrambled it to make a type."""

multilinha_simples = '''
Is simply dummy text of the printing and typesetting industry
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and scrambled it to make a type.'''

Na saída as linhas serão quebradas da mesma forma que está no código.

Índices e cortes (slicing)

Strings são sequências de caracteres, ou seja, uma sequência indexada onde podemos acessar qualquer caractere a partir de uma posição desejada.

Vamos a um pequeno exemplo onde iremos acessar o primeiro caractere de uma string para entendermos um conceito bem importante.

Veja:

1
2
3
4
5
nome = "Erick"

print(nome[0])
print(nome[1])
print(nome[2])

Resultando nos três primeiros caracteres:

1
2
3
E
r
i

:warning: Importante ressaltar que todo iterável do Python (Listas, Tuplas, Strings) são indexados começando-se pelo índice 0 e não pelo 1.

Caso tente acessar um índice inexistente, o seguinte erro será exibido:

1
IndexError: string index out of range

Mas não é somente com números positivos que acessamos os caracteres de uma strings, também temos a indexação negativa:

1
2
3
4
5
nome = "Erick"

print(nome[-1])
print(nome[-2])
print(nome[-3])

E a saída:

1
2
3
k
c
i

Utilizando a Indexação Negativa, o índice -1 aponta para o último caracter da string; -2 para o penúltimo; -3 para o antepenúltimo e assim por diante.

Use dois pontos para obter os caracteres de uma posição inicial até uma posição final:

1
2
3
4
5
6
7
8
9
nome = "Pythonista"

# Desde a posição de índice 3 (que é o "h")
# até a última posição da string
print(nome[3:])

# Desde a posição de índice -3 (que é o "s")
# até a última posição da string
print(nome[-3:])

Resultando em:

1
2
honista
sta

Também podemos retornar um intervalo de caracteres, especificando um índice inicial e final, separados por dois pontos.

Exemplo:

1
2
3
texto = "Python é uma linguagem de programação de alto nível"

print(texto[13:22])

E a saída será:

1
linguagem

O índice final não entra no resultado: texto[13:22] pega do índice 13 até o 21. Se usássemos texto[13:23], o espaço depois de “linguagem” também viria junto.

Existe ainda um terceiro valor, o passo: texto[inicio:fim:passo]. O truque mais famoso é o passo negativo, que inverte a string:

1
2
3
4
palavra = "Python"

print(palavra[::2])   # de 2 em 2 caracteres
print(palavra[::-1])  # invertida

Saída:

1
2
Pto
nohtyP

O fatiamento funciona igual em listas e tuplas. Para ver todas as combinações de início, fim e passo com exemplos, confira o guia de fatiamento (slicing) de listas no Python.

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine as PyDicas e receba 30 dias do melhor conteúdo Python na sua Caixa de Entrada: direto e sem enrolação!

Strings são imutáveis: o que isso significa

Imutável quer dizer que, depois de criada, uma string não pode ser alterada. Você consegue ler qualquer caractere pelo índice, mas não consegue trocar um caractere no lugar:

1
2
s = "Python"
s[0] = "J"
1
TypeError: 'str' object does not support item assignment

Para “alterar” uma string, você cria uma string nova e, se quiser, guarda o resultado na mesma variável:

1
2
3
4
5
6
7
8
s = "Python"
novo = s.replace("P", "J")

print(s)     # a original continua igual
print(novo)  # a nova string

s = "J" + s[1:]  # reatribuindo a variável
print(s)

Saída:

1
2
3
Python
Jython
Jython

Isso explica um comportamento que confunde muito iniciante: todos os métodos de string retornam uma string nova. Chamar s.upper() sozinho não muda s; você precisa escrever s = s.upper(). É diferente das listas no Python, que são mutáveis e aceitam lista[0] = "J" sem erro.

Operações com strings

Juntar string pode ser algo essencial e saber como realizar essa operação é muito importante!

Em python podemos concatenar strings, ou seja, juntar duas ou mais strings em uma única, utilizando o operador +, desta forma:

1
2
3
4
5
var1 = 'variável'
var2 = 'string'

print(var1 + var2)
print(var1 + " " + var2)

E a saída será:

1
2
variávelstring
variável string

Que tal multiplicar uma string?

Use o operador * para isso. Exemplo:

1
2
3
4
5
linha = '-'

print(linha * 28)
print("Nosso código")
print(linha * 28)

Saída:

1
2
3
----------------------------
Nosso código
----------------------------

Como juntar e separar strings: split() e join()

split() e join() são operações opostas e aparecem o tempo todo em código real (ler arquivos CSV, tratar o que o usuário digitou, montar mensagens).

split() quebra uma string em uma lista. Sem argumentos, ele separa pelos espaços (e ignora espaços repetidos). Com um argumento, separa pelo texto que você indicar:

1
2
3
4
5
6
7
8
9
10
frase = "Python é uma linguagem incrível"
palavras = frase.split()
print(palavras)
print(len(palavras))

frutas = "maçã,banana,uva".split(",")
print(frutas)

# maxsplit: separa no máximo 1 vez
print("2026-09-26".split("-", 1))

Saída:

1
2
3
4
['Python', 'é', 'uma', 'linguagem', 'incrível']
5
['maçã', 'banana', 'uva']
['2026', '09-26']

join() faz o caminho inverso: junta uma lista de strings em uma só. A sintaxe costuma estranhar no começo, porque o método é chamado no separador, e a lista vai como argumento:

1
2
3
4
5
frutas = ['maçã', 'banana', 'uva']

print(", ".join(frutas))
print(" + ".join(frutas))
print("".join(["P", "y"]))

Saída:

1
2
3
maçã, banana, uva
maçã + banana + uva
Py

Cuidado: join() só aceita itens do tipo str. Com números, converta antes:

1
2
3
4
numeros = [1, 2, 3]

print(", ".join(str(n) for n in numeros))  # 1, 2, 3
print(", ".join(numeros))                  # erro!
1
TypeError: sequence item 0: expected str instance, int found

Resumindo as formas de juntar strings e quando usar cada uma:

Situação Use Exemplo Resultado
Juntar poucas strings + "Olá, " + nome Olá, Ana
Misturar texto com números e variáveis f-string f"{nome} tem {idade} anos" Ana tem 30 anos
Juntar os itens de uma lista join() ", ".join(["a", "b"]) a, b
Repetir a mesma string * "-" * 5 -----
Código antigo ou template reaproveitado format() "{} anos".format(30) 30 anos

Nos exemplos da tabela, nome = "Ana" e idade = 30. Para juntar muitas strings dentro de um loop, prefira acumular numa lista e usar join() no final, em vez de += repetido.

Principais métodos de string

Métodos são funções que “pertencem” à string e são chamados com ponto: texto.metodo(). Como strings são imutáveis, todos eles devolvem um valor novo e deixam a string original intacta. A lista completa está na documentação oficial dos métodos de string; estes são os que você mais vai usar:

Método O que faz Exemplo Resultado
upper() Tudo em maiúsculas "python".upper() 'PYTHON'
lower() Tudo em minúsculas "PYTHON".lower() 'python'
capitalize() Só a primeira letra maiúscula "python academy".capitalize() 'Python academy'
title() Primeira letra de cada palavra maiúscula "python academy".title() 'Python Academy'
strip() Remove espaços do início e do fim " oi ".strip() 'oi'
replace(velho, novo) Troca um trecho por outro "banana".replace("a", "o") 'bonono'
split(sep) Quebra em uma lista "a,b,c".split(",") ['a', 'b', 'c']
join(lista) Junta uma lista usando o separador "-".join(["a", "b"]) 'a-b'
find(trecho) Índice da 1ª ocorrência (ou -1) "banana".find("n") 2
count(trecho) Quantas vezes o trecho aparece "banana".count("a") 3
startswith(trecho) Começa com o trecho? "Python".startswith("Py") True
endswith(trecho) Termina com o trecho? "python.py".endswith(".py") True
isdigit() Só tem dígitos? "2026".isdigit() True
zfill(n) Completa com zeros à esquerda "7".zfill(3) '007'

E len()? Ele não é um método, e sim uma função embutida: escreve-se len("Python") (resultado 6), e não "Python".len().

Na prática, os métodos costumam ser encadeados. Veja um exemplo de limpeza de um email digitado pelo usuário:

1
2
3
4
5
6
email = "  [email protected]  "
limpo = email.strip().lower()

print(limpo)
print(limpo.split("@"))
print(limpo.endswith(".com"))

Saída:

1
2
3
[email protected]
['ana.silva', 'email.com']
True

Formatação de Strings utilizando format()

Agora vamos supor que você queira concatenar uma variável que contém uma string com um número, assim:

1
2
3
var = 'Média: '

print(var + 10)

Se tentar executar esse código, o seguinte erro será mostrado:

1
TypeError: can only concatenate str (not "int") to str

Python só permite a concatenação utilizando o operador + quando os dois operandos são strings!

Para contornar este problema, podemos utilizar a formatação de strings.

Para isso existem, basicamente, duas formas: a primeira utilizando o método format() das strings e a outra - muito mais utilizada atualmente - é o conceito de F-Strings, que tem um guia completo de f-strings no Python aqui no blog. Também dá para converter o número com str(): var + str(10).

1
print('{}{}'.format(var, 10))

O método .format() pega os argumentos passados e insere dentro da string onde os marcadores {} estão posicionados, na ordem dos argumentos.

Resultado do código acima:

1
Média: 10

Você pode utilizar esse recurso quantas vezes for necessário:

1
2
3
4
5
6
qtd_macas = 10
qtd_melancias = 3
qtd_uvas = 22.2

texto = 'Vou comprar {} maças, trocar {} melancias e comer {} uvas'
print(texto.format(qtd_macas, qtd_melancias, qtd_uvas))

Saída:

1
Vou comprar 10 maças, trocar 3 melancias e comer 22.2 uvas

Também podemos definir as posições em que os argumentos serão inseridos:

1
2
3
4
5
6
qtd_macas = 10
qtd_melancias = 3
qtd_uvas = 22.2

texto = 'Vou comprar {2} maças, trocar {1} melancias e comer {0} uvas'
print(texto.format(qtd_macas, qtd_melancias, qtd_uvas))

Observe que realmente trocamos as posições em que os argumentos estão colocados:

1
Vou comprar 22.2 maças, trocar 3 melancias e comer 10 uvas

:bulb: Estou desenvolvendo o Ebookr.ai, uma plataforma que transforma suas ideias em ebooks profissionais usando IA - com geração de capa, infográficos e exportação em PDF. Te convido a conhecer!

Formatação utilizando F-Strings

Esse conceito já foi abordado em um Post exclusivo aqui no Blog!

Se quiser conferir, termine primeiro este Post e depois clique aqui para dominar a formatação de strings com F-Strings!

Mas só depois de terminar este aqui hein! :sweat_smile:

Strings em Estruturas de repetição

Sabemos que as strings são iteráveis e por isso, podemos utilizar as estruturas de repetição for e while para percorrer seus itens.

Vamos a um exemplo com for:

1
2
3
4
txt = 'Python'

for item in txt:
    print(item)

E outro exemplo com while:

1
2
3
4
indice = 0
while indice < len(txt):
    print(txt[indice])
    indice += 1

Ambos produzem o mesmo resultado:

1
2
3
4
5
6
P
y
t
h
o
n

Uma pequena brincadeira com concatenação e estruturas de repetição:

1
2
3
4
5
prefixo = "MSCBGM"
sufixo = "ola"

for caractere in prefixo:
    print(caractere + sufixo)

Saída do código acima:

1
2
3
4
5
6
Mola
Sola
Cola
Bola
Gola
Mola

Perceba que o código iterou sobre os caracteres da variável prefixo, adicionando o sufixo ola ao final.

Se ainda não domina Estruturas de Repetição com for e while, se liga que nós temos artigos completos sobre o assunto:

Verificar se uma String pertence à outra String

Para verificar se uma determinada sequência de caracteres existe em uma string, basta usar o operador in, desta forma:

1
2
3
texto = "As strings são sequências de caracteres"

print('são' in texto)

Retornando:

1
True

Outro modo que podemos fazer essa verificação é utilizando o condicional if e o operador in, da seguinte maneira:

1
2
3
4
texto = "Tenha um ótimo dia"

if 'dia' in texto:
    print("A sequência de caractere existe na string!")

A saída será:

1
A sequência de caractere existe na string!

Também podemos verificar o oposto, isto é: se a sequência não existe, utilizando o operador not in, desta forma:

1
2
3
4
5
6
texto = "A tecnologia move o mundo!"

print('qualidade' not in texto)

if 'qualidade' not in texto:
    print("A palavra 'qualidade' realmente não existe dentro da string!")

A saída será True na primeira verificação, dado que qualidade realmente não se encontra na string em questão. A saída completa será:

1
2
True
A palavra 'qualidade' realmente não existe dentro da string!

Strings parecem simples até você esbarrar em detalhes como esse dos caracteres de escape. É esse tipo de fundamento que a gente destrincha com calma, do zero ao avançado, na Jornada Python:

Caracteres de saída (Escape Characters)

A princípio um caractere de escape, ou caracter de saída é utilizado para gerar uma interpretação alternativa ao texto que foi definido.

Em Python, eles são caracterizados pela barra inversa \ seguido por outro caractere.

Pode parecer confuso, mas vamos pra utilização que você vai entender!

Existem alguns caracteres que não podem ser inseridos em strings, pois será gerado um algum tipo de erro como por exemplo tentar adicionar aspas duplas em uma string que foi criada com aspas duplas, veja:

1
2
variavel = "Aprenda "o" Python "
print(variavel)

A saída do código acima gera um erro de sintaxe SyntaxError pois o Python finaliza a string após as aspas de fechamento após o texto “Aprenda”.

A maneira certa de conseguir que esse código tenha a mesma saída sem erro, é usar o caractere de saída \", assim:

1
2
variavel = "Aprenda \"o\" Python"
print(variavel)

Dessa forma, o Python vai entender que você quer realmente definir aspas no texto, e não fechar uma string!

O resultado será:

1
Aprenda "o" Python

Este método também pode ser aplicado com aspas simples ''. Exemplo:

1
2
variavel = 'Aprenda \'o\' Python'
print(variavel)

Acabamos de conhecer o caractere de saída Single-Quote (Citação única) e agora vamos conhecer outros caracteres!

Se você deseja adicionar uma contra barra sem que o Python interprete como um caractere de saída, basta utilizar duas contra barras para isso, assim:

1
2
variavel = "Contra \\' \\ barra"
print(variavel)

Resultando um uma única barra:

1
Contra \' \ barra

Vamos adicionar/quebrar uma linha dentro de uma string com \n:

1
2
variavel = "Desejo quebrar \n essa linha"
print(variavel)

Resultando na quebra de linha:

1
2
Desejo quebrar
 essa linha

O próximo é o \t, que nada mais é que um caractere que simboliza o TAB do seu teclado, confira:

1
2
3
variavel = "Quatro espaço \t para um tab"

print(variavel)

A saída será:

1
Quatro espaço 	 para um tab

Também temos o caractere de saída backspace \b. Você pode utilizá-lo para ter o mesmo efeito da tecla Backspace de seu teclado:

1
2
variavel = "Aa\b Bb\b Cc\b "
print(variavel)

Saída no terminal:

1
A B C

Veja que os caracteres a, b e c sumiram da tela! Na verdade, o \b só volta o cursor uma posição, e o espaço seguinte escreve por cima da letra (por isso o espaço depois do último \b: sem ele, o c continuaria visível). Os caracteres continuam dentro da string (len() conta todos), e em algumas IDEs e no Jupyter o \b pode aparecer como um símbolo estranho em vez de apagar.

Representando Strings em Octal e Hexadecimal

Também temos caracteres especiais para tratamento de de valores Octais e Hexadecimais.

Os número Octais são representados por uma barra invertida e três números \000, dessa forma:

1
2
variavel = "\101 \102 \103 \104 - \060 \061 \062 \063"
print(variavel)

Resultando na seguinte saída:

1
A B C D - 0 1 2 3

Já para representar caracteres em formato Hexadecimal, utilizamos uma barra invertida seguida por um “x” e o número em Hexadecimal.

1
2
variavel = "\x61 \x62 \x63 \x64 - \x30 \x31 \x32 \x33"
print(variavel)

Resultando em:

1
a b c d - 0 1 2 3

Erros comuns

1. TypeError ao concatenar string com número

1
2
idade = 30
print("Idade: " + idade)
1
TypeError: can only concatenate str (not "int") to str

O + só junta str com str. Converta o número ou use f-string: print("Idade: " + str(idade)) ou print(f"Idade: {idade}"), ambos imprimem Idade: 30.

2. Tentar alterar um caractere da string

1
2
s = "Python"
s[0] = "J"
1
TypeError: 'str' object does not support item assignment

Strings são imutáveis. Crie uma string nova e reatribua: s = "J" + s[1:] ou s = s.replace("P", "J"), que resultam em 'Jython'.

3. IndexError: string index out of range

1
2
s = "Python"
print(s[6])
1
IndexError: string index out of range

"Python" tem 6 caracteres, então os índices vão de 0 a 5. Para pegar o último, use s[len(s) - 1] ou, melhor, s[-1]. Curiosidade: fatiar além do fim não gera erro, s[2:100] retorna 'thon'.

4. Esquecer que métodos retornam uma nova string

1
2
3
nome = "ana"
nome.upper()
print(nome)  # ana (não mudou!)

Não há traceback, o que torna esse erro traiçoeiro: o upper() criou 'ANA' e o resultado foi descartado. Atribua o retorno: nome = nome.upper(), e aí print(nome) mostra ANA. Vale para lower(), strip(), replace() e todos os outros.

5. Fazer conta com o valor do input() sem converter

1
2
quantidade = input("Quantos produtos você quer? ")  # usuário digita 3
print(quantidade * 2)
1
33

O input() sempre devolve uma string, e "3" * 2 repete o texto. Converta na leitura: quantidade = int(input("Quantos produtos você quer? ")), e o resultado passa a ser 6. Tem mais detalhes no post sobre input e print: entrada e saída de dados no Python.

Exercícios resolvidos

Exercício 1. Dada a variável nome = "Maria Silva", imprima o primeiro nome em letras maiúsculas e, depois, a quantidade total de caracteres.

Ver solução
1
2
3
4
nome = "Maria Silva"

print(nome.split()[0].upper())
print(len(nome))

Saída: MARIA e 11

split() gera ['Maria', 'Silva'], o índice [0] pega o primeiro nome e upper() converte. O len() conta também o espaço.

Exercício 2. (Questão de prova) Um estudante escreveu o seguinte código no Python:

1
2
quantidade = input("Quantos produtos você quer?")
print(quantidade * 2)

Ao executar o código e digitar 3, o que será exibido?

a) 6

b) 33

c) TypeError, porque não é possível multiplicar uma string

d) 3 3

Ver solução
1
2
quantidade = "3"  # é isso que o input() devolve
print(quantidade * 2)

Saída: 33

Resposta: b. O input() sempre retorna str, e string multiplicada por inteiro é repetida (não dá erro, por isso a c está errada). Não há espaço entre as repetições, o que elimina a d. Para obter 6, seria preciso int(input(...)).

Exercício 3. (Questão de prova) Considere s = "Python". O que print(s[1:4]) exibe?

a) Pyt

b) yth

c) ytho

d) Pyth

Ver solução
1
2
s = "Python"
print(s[1:4])

Saída: yth

Resposta: b. O índice 1 é o y (a contagem começa em 0) e o fatiamento para antes do índice 4, pegando os índices 1, 2 e 3.

Exercício 4. Escreva um código que diga se uma palavra é um palíndromo (lida igual de trás para frente), testando "arara" e "python".

Ver solução
1
2
for palavra in ["arara", "python"]:
    print(palavra, palavra == palavra[::-1])

Saída: arara True e python False

palavra[::-1] inverte a string com passo negativo. Se a versão invertida for igual à original, é palíndromo.

Exercício 5. Conte quantas vogais (com ou sem acento) existem na frase "Programar em Python é divertido".

Ver solução
1
2
3
4
5
6
7
8
frase = "Programar em Python é divertido"
vogais = 0

for letra in frase.lower():
    if letra in "aeiouáéíóúâêôãõ":
        vogais += 1

print(vogais)

Saída: 10

O lower() garante que maiúsculas também contem, e o operador in verifica se cada letra está na string de vogais. O y de Python não entra.

Exercício 6. Transforme a data "2026-09-26" (formato ano-mês-dia) em "26/09/2026".

Ver solução
1
2
3
4
data = "2026-09-26"
ano, mes, dia = data.split("-")

print("/".join([dia, mes, ano]))

Saída: 26/09/2026

split("-") separa as três partes em uma lista, que é desempacotada em três variáveis. Depois o join() monta a nova data com / como separador.

Exercício 7. (Questão de prova) Considere s = "Oi". Qual das linhas abaixo gera erro?

a) s.upper()

b) s + "!"

c) s[0] = "o"

d) s * 2

Ver solução
1
2
3
s = "Oi"
print(s.upper(), s + "!", s * 2)
s[0] = "o"

Saída: OI Oi! OiOi e, na linha 3, TypeError: 'str' object does not support item assignment

Resposta: c. Strings são imutáveis, então não aceitam atribuição por índice. As outras linhas criam strings novas e funcionam normalmente.

Exercício 8. O usuário digitou " python academy blog ", com espaços sobrando. Remova os espaços extras e deixe a primeira letra de cada palavra maiúscula.

Ver solução
1
2
3
4
bagunca = "  python    academy   blog "
limpo = " ".join(bagunca.split()).title()

print(limpo)

Saída: Python Academy Blog

split() sem argumento descarta todos os espaços repetidos, join() junta as palavras com um único espaço e title() capitaliza cada palavra.

Conclusão

Nesse post você viu vários conceitos importantes quando estamos manipulando strings em Python!

Se quiser praticar strings, listas e o resto da base com projetos guiados, conheça o curso de Python completo da Jornada Python.

Ainda temos muito conteúdo para abordar sobre strings, então fique ligado na Python Academy que teremos mais artigos completíssimos em breve :wink:

Se ficou com alguma dúvida, fique à vontade para usar o box de comentário aqui embaixo!

Terei enorme prazer em te responder!

É isso meu caro, e até a próxima!

Perguntas frequentes

O que é uma string em Python?

String (tipo str) é uma sequência imutável de caracteres usada para guardar texto. Ela é escrita entre aspas simples, duplas ou triplas: 'Python', "Python" ou '''Python'''. Cada caractere tem um índice que começa em 0, e type('Python') retorna <class 'str'>.

O que é string em programação?

Em programação, string é o tipo de dado que representa texto: uma sequência de caracteres (letras, números, espaços e símbolos) tratada como um valor só. O nome vem de ‘string’ em inglês, que significa cordão ou fileira, porque os caracteres ficam enfileirados. Em Python o tipo se chama str.

Como fazer fatiamento de string em Python?

Use texto[inicio:fim:passo]. O índice inicio entra e o fim não entra. Com s = 'Python': s[0:2] resulta em 'Py', s[2:] em 'thon', s[-3:] em 'hon' e s[::-1] inverte a string, resultando em 'nohtyP'. Fatiar além do tamanho não gera erro, só acessar um índice isolado inexistente.

Como concatenar string com número em Python?

O operador + só junta str com str, então 'Idade: ' + 30 gera TypeError: can only concatenate str (not "int") to str. Converta o número com str(), como em 'Idade: ' + str(30), ou use uma f-string: f'Idade: {30}'. As duas formas resultam em 'Idade: 30'.

Posso alterar um caractere de uma string em Python?

Não diretamente, porque strings são imutáveis. s = 'Python' seguido de s[0] = 'J' gera TypeError: 'str' object does not support item assignment. O jeito é criar uma string nova e reatribuir a variável: s = 'J' + s[1:] ou s = s.replace('P', 'J'), que resultam em 'Jython'.

Qual a diferença entre split() e join() em Python?

São operações opostas. split() quebra uma string em uma lista: 'a,b,c'.split(',') resulta em ['a', 'b', 'c'], e sem argumento separa pelos espaços. join() faz o caminho inverso e junta uma lista de strings usando a string como separador: '-'.join(['a', 'b', 'c']) resulta em 'a-b-c'.

Um estudante escreveu quantidade = input(‘Quantos produtos você quer?’) e depois print(quantidade * 2). Ao digitar 3, o que aparece?

Aparece 33, e não 6. A função input() sempre retorna uma string, então quantidade vale '3', e multiplicar uma string por 2 repete o texto duas vezes. Para obter 6, converta antes: quantidade = int(input('Quantos produtos você quer?')).

Como saber o tamanho de uma string em Python?

Use a função len(), que retorna quantos caracteres a string tem, contando espaços e pontuação. len('Python') resulta em 6 e len('Python Academy') em 14. Como os índices começam em 0, o último caractere fica no índice len(s) - 1, que é o mesmo que s[-1].

Começe agora sua Jornada na Programação!

Não deixe para amanhã o sucesso que você pode começar a construir hoje!

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.