Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions Bootcamp - Python para dados/aula02/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ Escreva um programa que converta a temperatura de Celsius para Fahrenheit. O pro

### 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
Copy Markdown
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.


### Exercício 23: Calculadora Simples

Expand Down Expand Up @@ -426,15 +426,16 @@ except ValueError:
### Exercício 22: Verificador de Palíndromo

```python
entrada = input("Digite uma palavra ou frase: ")
if isinstance(entrada, str):
formatado = entrada.replace(" ", "").lower()
if formatado == formatado[::-1]:
print("É um palíndromo.")
else:
print("Não é um palíndromo.")
palavra = input('Forneça uma palavra ou frase: ')
if palavra.isdigit():
print("Digite uma palavra ou frase, por favor")
Comment on lines +429 to +431

Copy link
Copy Markdown
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}.")

else:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
else:

print("Entrada inválida. Por favor, digite uma palavra ou frase.")
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')
Comment on lines +433 to +438

Copy link
Copy Markdown
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')

```

### Exercício 23: Calculadora Simples
Expand Down