Python e Strings: Estrutura e Funcionalidades a Explorar
Manipulação de string é como brincar com palavras e frases em Python. Uma string é qualquer sequência de caracteres, como letras, números ou símbolos. Manipular strings significa cortar, juntar, substituir ou mudar essas sequências de várias maneiras.
Python tem muitos métodos que ajudam a mexer com texto. Aqui estão alguns dos principais métodos de strings em Python:
1. capitalize(): Converte o primeiro caractere da string em maiúsculo.
"hello".capitalize() # "Hello"
2. casefold(): Converte a string para minúsculas, mais agressivamente do que `lower()`.
"HELLO".casefold() # "hello"
3. center(width, fillchar): Centraliza a string, preenchendo com o caractere especificado (por padrão, espaço).
"hello".center(10, "-") # "--hello---"
4. count(sub, start, end): Conta quantas vezes a substring aparece na string.
"hello world".count("o") # 2
5. encode(encoding, errors): Codifica a string em bytes usando a codificação especificada.
"hello".encode("utf-8") # b'hello'
6. endswith(suffix, start, end): Verifica se a string termina com o sufixo especificado.
"hello".endswith("lo") # True
7. expandtabs(tabsize): Substitui caracteres de tabulação na string por espaços.
"hello\tworld".expandtabs(4) # "hello world"
8. find(sub, start, end): Retorna o índice da primeira ocorrência da substring.
"hello".find("e") # 1
9. format(args, kwargs): Formata a string usando argumentos posicional e nomeados.
"Hello, {}".format("world") # "Hello, world"
10. format_map(mapping): Formata a string usando um mapeamento.
"Hello, {name}".format_map({"name": "world"}) # "Hello, world"
11. index(sub, start, end): Retorna o índice da primeira ocorrência da substring, levantando um ValueError se não for encontrada.
"hello".index("e") # 1
12. isalnum(): Verifica se todos os caracteres da string são alfanuméricos.
"hello123".isalnum() # True
13. isalpha(): Verifica se todos os caracteres da string são letras.
"hello".isalpha() # True
14. isascii(): Verifica se todos os caracteres da string são ASCII.
"hello".isascii() # True
15. isdecimal(): Verifica se todos os caracteres da string são decimais.
"123".isdecimal() # True
16. isdigit(): Verifica se todos os caracteres da string são dígitos.
"123".isdigit() # True
17. isidentifier(): Verifica se a string é um identificador válido.
"hello_world".isidentifier() # True
18. islower(): Verifica se todos os caracteres da string estão em minúsculas.
"hello".islower() # True
19. isnumeric(): Verifica se todos os caracteres da string são numéricos.
"123".isnumeric() # True
20. isprintable(): Verifica se todos os caracteres da string são imprimíveis.
"hello".isprintable() # True
21. isspace(): Verifica se todos os caracteres da string são espaços em branco.
" ".isspace() # True
22. istitle(): Verifica se a string está no formato de título (primeira letra de cada palavra em maiúsculo).
"Hello World".istitle() # True
23. isupper(): Verifica se todos os caracteres da string estão em maiúsculas.
"HELLO".isupper() # True
24. join(iterable): Junta os elementos de um iterável em uma única string, usando a string atual como delimitador.
"-".join(["hello", "world"]) # "hello-world"
25. ljust(width, fillchar): Alinha a string à esquerda, preenchendo com o caractere especificado.
"hello".ljust(10, "-") # "hello-----"
26. lower(): Converte todos os caracteres da string para minúsculas.
"HELLO".lower() # "hello"
27. lstrip(chars): Remove os caracteres especificados do início da string.
" hello".lstrip() # "hello"
28. maketrans(x, y, z): Cria uma tabela de mapeamento para `translate()`.
table = str.maketrans("aeiou", "12345")
"hello".translate(table) # "h2ll4"
29. partition(sep): Divide a string na primeira ocorrência do separador e retorna uma tupla com três elementos.
"hello world".partition(" ") # ('hello', ' ', 'world')
30. replace(old, new, count): Substitui as ocorrências de uma substring por outra.
"hello world".replace("world", "Python") # "hello Python"
31. rfind(sub, start, end): Retorna o índice da última ocorrência da substring.
"hello hello".rfind("hello") # 6
32. rindex(sub, start, end): Retorna o índice da última ocorrência da substring, levantando um ValueError se não for encontrada.
"hello hello".rindex("hello") # 6
33. rjust(width, fillchar): Alinha a string à direita, preenchendo com o caractere especificado.
"hello".rjust(10, "-") # "-----hello"
34. rpartition(sep): Divide a string na última ocorrência do separador e retorna uma tupla com três elementos.
"hello world world".rpartition(" ") # ('hello world', ' ', 'world')
35. rsplit(sep, maxsplit): Divide a string da direita para a esquerda usando o separador especificado.
"hello world".rsplit(" ", 1) # ['hello', 'world']
36. rstrip(chars): Remove os caracteres especificados do final da string.
"hello ".rstrip() # "hello"
37. split(sep, maxsplit): Divide a string usando o separador especificado.
"hello world".split(" ") # ['hello', 'world']
38. splitlines(keepends): Divide a string nas quebras de linha.
"hello\nworld".splitlines() # ['hello', 'world']
39. startswith(prefix, start, end): Verifica se a string começa com o prefixo especificado.
"hello".startswith("he") # True
40. strip(chars): Remove os caracteres especificados do início e do final da string.
" hello ".strip() # "hello"
41. swapcase(): Converte caracteres maiúsculos em minúsculos e vice-versa.
"Hello".swapcase() # "hELLO"
42. title(): Converte a string para o formato de título (primeira letra de cada palavra em maiúsculo).
"hello world".title() # "Hello World"
43. translate(table): Substitui caracteres na string usando a tabela de mapeamento especificada.
table = str.maketrans("aeiou", "12345")
"hello".translate(table) # "h2ll4"
44. upper(): Converte todos
os caracteres da string para maiúsculas.
"hello".upper() # "HELLO"
45. zfill(width): Preenche a string com zeros à esquerda até atingir o comprimento especificado.
"42".zfill(5) # "00042"
Esses métodos ajudam a manipular e trabalhar com strings de várias maneiras.
Quais são os mais usados?
Os métodos mais usados são:
- len(): Para saber o tamanho da string.
nome = "Python"
print(len(nome)) # Saída: 6
- upper(): Para transformar tudo em maiúsculas.
print(nome.upper()) # Saída: PYTHON
- lower(): Para transformar tudo em minúsculas.
print(nome.lower()) # Saída: python
- replace(): Para substituir partes da string.
frase = "Eu amo pizza"
print(frase.replace("pizza", "Python")) # Saída: Eu amo Python
- split(): Para dividir a string em uma lista.
data = "21/06/2024"
print(data.split("/")) # Saída: ['21', '06', '2024']
Vamos fazer um desafio! Um palíndromo é uma palavra ou frase que se lê da mesma forma de trás para frente. Seu desafio é escrever uma função em Python que verifica se uma palavra é um palíndromo. Aqui vai um exemplo para começar:
def palindromo(palavra):
palavra = palavra.lower().replace(" ", "")
return palavra == palavra[::-1]
print(palindromo("radar")) # Saída: True
print(palindromo("python")) # Saída: False
Outros métodos para resolver o desafio de palíndromo:
Além do método básico que mostramos antes, existem várias outras maneiras de verificar se uma palavra é um palíndromo usando diferentes métodos de manipulação de strings em Python. Vamos explorar alguns deles.
Usando reversed()
Podemos usar a função `reversed()` para inverter a string e comparar com a original.
Usando loop for
Podemos verificar manualmente cada caractere da string comparando os caracteres do início com os do final.
Usando join() e filter()
Podemos usar `join()` e `filter()` para remover espaços e transformar tudo em minúsculas, depois comparar a string com sua versão invertida.
Usando deque da coleção collections
A classe `deque` (double-ended queue) permite a inserção e remoção de elementos de ambos os lados de forma eficiente. Podemos usar isso para comparar os extremos da string.
Gostou do conteúdo? Conteúdo gerado por IA com revisão 100% humana.
Tente resolver o desafio usando diferentes métodos e compartilhe suas soluções comigo! Quero ver como você resolve esse desafio de outras formas!
Se quiser conecte-se comigo, Me siga no Linkedin
Fontes de produção:
Imagem gerada por: Ideogram
Expansão de imagem: Youcam
Edição de imagem: Canva
Conteúdo gerado por: ChatGPT
#Python #DesafioDeCódigo #InteligênciaArtificial