Skip to content

Comments

corrigindo exercício 22 da lista de python#13

Open
gecofever wants to merge 1 commit intolvgalvao:mainfrom
gecofever:correcao-germano
Open

corrigindo exercício 22 da lista de python#13
gecofever wants to merge 1 commit intolvgalvao:mainfrom
gecofever:correcao-germano

Conversation

@gecofever
Copy link

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.

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")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ó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.

  1. Uso de isalpha() no lugar de isdigit():
  • 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). O isdigit() valida apenas números e, por isso, não reflete o objetivo do exercício.
  1. 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.
  1. 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')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants