corrigindo exercício 22 da lista de python#13
Open
gecofever wants to merge 1 commit intolvgalvao:mainfrom
Open
corrigindo exercício 22 da lista de python#13gecofever wants to merge 1 commit intolvgalvao:mainfrom
gecofever wants to merge 1 commit intolvgalvao:mainfrom
Conversation
alanceloth
requested changes
Dec 23, 2024
Comment on lines
+429
to
+431
| palavra = input('Forneça uma palavra ou frase: ') | ||
| if palavra.isdigit(): | ||
| print("Digite uma palavra ou frase, por favor") |
Collaborator
There was a problem hiding this comment.
Ótima sugestão, @gecofever! O código está funcional, mas gostaria de propor alguns ajustes para torná-lo mais robusto e alinhado a boas práticas.
- Uso de
isalpha()no lugar deisdigit():
- O uso de
isalpha()é mais adequado para este caso, pois verifica se a entrada contém apenas caracteres alfabéticos (incluindo letras com acento, que são permitidas no português). Oisdigit()valida apenas números e, por isso, não reflete o objetivo do exercício.
- Organização da lógica:
- Ao estruturar o código, priorizamos a lógica principal no fluxo superior (fora do
else), deixando o código mais claro e direto. Verificações negativas (not) podem ser usadas para validar entradas inválidas e retornar rapidamente, simplificando o fluxo.
- Validação e clareza:
- Adicionei um tratamento explícito para entradas inválidas com
raise ValueError, alinhando o código a boas práticas de validação de dados. Isso melhora a comunicação de erros e evita comportamentos inesperados.
Segue a sugestão com base nesses pontos:
Suggested change
| palavra = input('Forneça uma palavra ou frase: ') | |
| if palavra.isdigit(): | |
| print("Digite uma palavra ou frase, por favor") | |
| try: | |
| entrada = input("Digite uma palavra ou frase: ") | |
| # Remove espaços e converte para minúsculas | |
| formatado = entrada.replace(" ", "").lower() | |
| # Verifica se há números ou símbolos na entrada | |
| if not formatado.isalpha(): | |
| raise ValueError("A entrada deve conter apenas letras (acentos são permitidos).") | |
| # Verifica se é um palíndromo | |
| if formatado == formatado[::-1]: | |
| print(f'"{entrada}" é um palíndromo.') | |
| else: | |
| print(f'"{entrada}" não é um palíndromo.') | |
| except ValueError as ve: | |
| print(f"Erro: {ve}") | |
| except Exception as e: | |
| print(f"Erro inesperado: {e}.") |
Comment on lines
+433
to
+438
| palavra_tratada = palavra.replace(" ", "").lower() | ||
| palavra_invertida = palavra_tratada[::-1] | ||
| if palavra_tratada == palavra_invertida: | ||
| print(f'{palavra}, é palidromo') | ||
| else: | ||
| print(f'{palavra}, não é palidromo') |
Collaborator
There was a problem hiding this comment.
Suggested change
| palavra_tratada = palavra.replace(" ", "").lower() | |
| palavra_invertida = palavra_tratada[::-1] | |
| if palavra_tratada == palavra_invertida: | |
| print(f'{palavra}, é palidromo') | |
| else: | |
| print(f'{palavra}, não é palidromo') |
| palavra = input('Forneça uma palavra ou frase: ') | ||
| if palavra.isdigit(): | ||
| print("Digite uma palavra ou frase, por favor") | ||
| else: |
Collaborator
There was a problem hiding this comment.
Suggested change
| else: |
| ### Exercício 22: Verificador de Palíndromo | ||
|
|
||
| Crie um programa que verifica se uma palavra ou frase é um palíndromo (lê-se igualmente de trás para frente, desconsiderando espaços e pontuações). Utilize `try-except` para garantir que a entrada seja uma string. Dica: Utilize a função `isinstance()` para verificar o tipo da entrada. | ||
| Crie um programa que verifica se uma palavra ou frase é um palíndromo (lê-se igualmente de trás para frente, desconsiderando espaços e pontuações). Utilize `try-except` para garantir que a entrada seja uma string. Dica: Utilize a função `isdigit()` para verificar o tipo da entrada. |
Collaborator
There was a problem hiding this comment.
Suggested change
| Crie um programa que verifica se uma palavra ou frase é um palíndromo (lê-se igualmente de trás para frente, desconsiderando espaços e pontuações). Utilize `try-except` para garantir que a entrada seja uma string. Dica: Utilize a função `isdigit()` para verificar o tipo da entrada. | |
| Crie um programa que verifica se uma palavra ou frase é um palíndromo (lê-se igualmente de trás para frente, desconsiderando espaços e pontuações). Utilize `try-except` para garantir que a entrada seja uma string. Dica: Utilize a função `isalpha()` para verificar o tipo da entrada. | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Havia um erro no exercício 22, onde estava sendo indicado usar a função isinstance(), porém devido a entrada do usuário já ser uma string o segundo IF nunca era acionado, sendo assim, fiz a substituição por isdigit(), com as devidas correções e está funcionando corretamente.