Nota: O seguinte artigo irá ajudá-lo com: Programas Python em Operações de String
Neste tutorial, você escreverá programas em Python para resolver perguntas frequentes sobre operações de string.
Você aprenderá como verificar se as strings do Python são palíndromos, anagramase estão na caso de título.
Strings Python: Uma Revisão Rápida
Em Python, strings são poderosos tipos de dados integrados. Eles podem armazenar uma sequência de caracteres.
Indexação em Strings Python: Como todos os iteráveis do Python, as strings também são indexadas a zero. Portanto, os índices válidos para uma string de comprimento N são 0, 1, 2 até N – 1.
Python também suporta indexação negativa para acessar elementos do final da string. Então -1 é o índice do último caractere na string, -2 é o índice do penúltimo caractere na string e assim por diante.
Imutabilidade de Strings Python: Além disso, as strings em Python são imutáveis, então você as modifica no lugar. No entanto, você pode chamar vários métodos de string neles e obter cópias de strings com o resultado desejado.
Agora que revisamos o básico das strings do Python, vamos resolver alguns problemas simples, mas interessantes.
Vamos começar.
Verifique se uma string Python é um palíndromo
Problema: Dada uma string Python, verifique se é ou não um palíndromo.
Se sim, retorne True; caso contrário, retorne False.
Portanto, nosso primeiro problema é verificar se uma determinada string é ou não um palíndromo.
UMA palíndromo é uma string que lê o mesmo da esquerda para a direita, bem como da direita para a esquerda. Vamos listar alguns exemplos: carro de corrida, referência, nível, madame, radar e assim por diante.

Aqui estão os passos para resolver este problema:
- Obter um cópia invertida da string e armazená-la em outra variável, se necessário.
- Compare os valores da string original e da string invertida.
- Se forem iguais, a string é um palíndromo. Então volte VerdadeiroE pare.
- Se as cópias original e invertida não forem iguais, a string não é um palíndromo. Então devemos voltar Falso.
A operação de chave é obter uma cópia invertida da string. Em Python, existem algumas maneiras diferentes de fazer isso.
No entanto, vamos passar por duas abordagens:
- Usando corte de cordas
- Usando o invertido() função e o Junte() método
Como reverter uma string Python usando Slicing
A sintaxe
- Se você omitir start, a fatia começará no início da string.
- Se você não especificar o índice de parada, a fatia se estenderá até o final da string.
- E valores negativos de step podem ser usados para retornar fatias a partir do final da string.
Então
A seguinte célula de código contém a definição da função is_palindrome().
Ele recebe uma string como argumento e retorna True ou False dependendo se é ou não um palíndromo.
Aqui, usamos o fatiamento de string para obter uma cópia reversa da string.
def is_palindrome(this_str): rev_str = this_str[::-1] if (this_str == rev_str): return True else: return False
▶️ Agora que definimos a função, podemos prosseguir e chamar com qualquer string válida como argumento.
is_palindrome("racecar") True
Na célula de código acima, o carro de corrida é um palíndromo. Portanto, a função is_palindrome() retorna True conforme o esperado.
Agora, tente chamar a função com qualquer string que não seja um palíndromo, como river.
is_palindrome("river") False
E como você pode ver, ele retorna False, o que está correto. ✅
Como reverter uma string Python usando reversed() e join()
Em Python, você pode usar o método join() junto com a função reversed() para reverter uma string.
- A função reversed() retorna um iterador reverso por meio dos caracteres na string.
- O método join() pode então ser usado para unir esses caracteres na ordem inversa.
Usando o método acima, você pode reescrever a função is_palindrome() como na célula de código abaixo.
def is_palindrome(this_str): rev_str="".join(reversed(this_str)) if (this_str == rev_str): return True else: return False
Você também pode usar a função is_palindrome() dentro da compreensão da lista para coletar todos os palíndromos de uma lista mais longa de strings.
str_list = ["refer","blue","level","12321","dragon"] palindromes = [string for string in str_list if is_palindrome(string)] print(palindromes) # Output ['refer', 'level', '12321']
Veja como o código acima funciona:
- Percorra str_list, chame is_palindrome() em cada string.
- Se is_palindrome() retornar True, adicione a string à lista de palindromes.
Como você pode ver na saída acima, palindromes é uma lista de todas as strings palindrômicas em str_list.
Verifique se duas strings Python são anagramas
Outra pergunta popular que você pode encontrar em entrevistas é verificar se um par de strings str1 e str2 são ou não anagramas.
Duas cordas são ditas anagramas se a contagem dos caracteres nas duas strings for exatamente a mesma. Isso significa que você pode obter uma das strings permutar ou reorganizar os caracteres na outra string.
Exemplos de anagramas incluem estado-gosto, salvar-vaso, cotovelo-abaixo e assim por diante.

Como verificar anagramas usando Counter Object em Python
Uma maneira simples e intuitiva é calcular o número de ocorrências de cada caractere nas duas strings. E, em seguida, verifique se as contagens são iguais.
Isso pode ser feito ainda mais facilmente usando o objeto Counter do módulo itertools. O objeto Counter retorna um dicionário Python: com os caracteres como o chaves e as contas correspondentes como o valores.
Considere as strings “save” e “vase” como mostrado abaixo.
str1 = "save" str2 = "vase"
Aqui, c1 e c2 são objetos de contador contendo as contagens de caracteres das strings str1 e str2 respectivamente.
from collections import Counter c1 = Counter(str1) c2 = Counter(str2) print(c1) print(c2) c1 == c2 # Output Counter({'s': 1, 'a': 1, 'v': 1, 'e': 1}) Counter({'v': 1, 'a': 1, 's': 1, 'e': 1}) True
c1 == c2 retorna True como str1 e str2 são anagramas.
Usando essa lógica, agora podemos seguir em frente e definir a função are_anagrams() com dois parâmetros word1 e word2. No corpo da função, verificamos se Counter(word1) == Counter(word2).
def are_anagrams(word1, word2): if Counter(word1) == Counter(word2): return True else: return False
▶️ Para verificar, chame are_anagrams() com str1, str2 como argumentos. Como str1 e str2 são anagramas (“save” e “vase”), a função retorna True, o que está correto.
are_anagrams(str1, str2) True
Como verificar anagramas usando cópias classificadas de strings
Existe outra maneira de fazer isso.
Se duas strings são anagramas, então suas cópias classificadas são iguais.
Assim, podemos reescrever a função are_anagrams() para verificar se a versão ordenada de str1 é a mesma que a cópia ordenada de str2. Se forem iguais, então as duas strings são anagramas; caso contrário, eles não são.
Usando o método acima para verificar a igualdade de cópias ordenadas, podemos reescrever a função are_anagrams() da seguinte forma.
def are_anagrams(word1, word2): if sorted(word1) == sorted(word2): return True else: return False
Vamos agora fazer algumas chamadas de função.
- As strings “elbow” e “below” são anagramas e a função are_anagrams() retorna True.
- E “state” e “tasted” não são anagramas, e a função retorna False.
are_anagrams("below","elbow") True are_anagrams("state","tasted") False
Verifique se uma string Python está em maiúsculas
Aqui está nossa pergunta final para este tutorial.
Problema: Dada uma string: o nome de uma pessoa—com nome e sobrenome.
Você deve verificar se a primeira letra do nome e do sobrenome estão em maiúscula.
Este tipo de caixa em que a primeira letra de cada palavra é maiúscula é chamado caso de título.
Então você tem que verificar se o nome está em maiúsculas:
1. Se sim, emita uma mensagem informando que a formatação está em maiúsculas e minúsculas.
2. Caso contrário, retorne uma cópia da string formatada em maiúsculas e minúsculas

- Python tem um método de string embutido istitle(), que verifica se uma string está na caixa do título.
.istitle() retorna True se a string for formatada em maiúsculas, senão retorna False.
- E o método de string title() do Python retorna uma cópia da string formatada em maiúsculas e minúsculas.
Então agora você pode usar esses dois métodos para resolver o problema.
Defina uma função check_titlecase() que aceite name como argumento.
- Você pode chamar o método istitle() na string de entrada para verificar se ela está formatada em maiúsculas e minúsculas.
- Se True, você pode imprimir que a string já está em maiúsculas.
- Caso contrário, você pode chamar o método title() e retornar uma cópia da string no título.
A célula de código a seguir mostra a definição da função check_titlecase().
def check_titlecase(name): if name.istitle(): print(f"'{name}' is already formatted in title case.") else: return name.title()
Vamos agora chamar o método check_titlecase() com um argumento.
check_titlecase("jane smith") # Output Jane Smith
Na saída acima, você pode ver que a string “Jane Smith” agora está no título.
▶️ Tomemos outro exemplo.
check_titlecase("agatha Christie") # Output Agatha Christie
Desta vez, vamos chamar a função com uma string em maiúsculas.
check_titlecase("Grace Hopper") # Output 'Grace Hopper' is already formatted in title case.
Somos notificados de que a string está formatada em maiúsculas e a função funciona conforme o esperado.
Conclusão 👩🏫
Agora vamos resumir os problemas que discutimos até agora.
- Para verificar se uma string é um palíndromo, verifique se a string e sua versão invertida são iguais. Você pode usar o fatiamento de strings ou métodos integrados para reverter strings.
- Para verificar se duas strings são anagramas, verifique se suas cópias ordenadas são iguais. E para classificar uma string, use o built-in classificado() função.
- Para verificar se um nome está em maiúsculas, use o .istitle() método de verificação e .título() para obter uma cópia em maiúsculas e minúsculas da string.
Espero que você tenha gostado deste tutorial sobre strings Python. Como próximo passo, aprenda como usar compreensões de lista em Python ou aprenda sobre o operador não igual em Python.
Feliz aprendizagem e codificação!🎉