A forma de verificação, se o número se encontra entre 1 e 100, do meu código e do código da Alura, estão diferentes. De fato, o da Alura parece mais legível por estar separado das outras condições. E embora saiba, que dá para chegar ao mesmo objetivo de várias formas, gostaria de saber se a forma que fiz não é considerada errada?
Meu código:
import random
def gerar_numero_aleatorio():
numero_secreto = random.randint(1,100)
return numero_secreto
def pedir_numero(numero_secreto):
palpite = 0
tentativas = 0
while True:
try:
palpite = int(input('Adivinhe o número secreto (entre 1 e 100):'))
tentativas += 1
if palpite < 0 or palpite > 100:
print('Erro: Digite apenas números entre 1 e 100. Tente novamente')
elif palpite < numero_secreto:
print(f'O número secreto é maior que {palpite}. Tente novamente!')
elif palpite > numero_secreto:
print(f'O número secreto é menor que {palpite}. Tente novamente!')
else:
palavra_tentativa = "tentativa" if tentativas == 1 else 'tentativas'
print(f'Parabéns!!! Você acertou o número secreto: {numero_secreto} em {tentativas} {palavra_tentativa}.')
break
except ValueError:
print('Erro. Digite apenas números inteiros ')
numero_gerado = gerar_numero_aleatorio()
pedir_numero(numero_gerado)
Código Alura:
import random
def adivinhar_numero():
numero_secreto = random.randint(1, 100)
tentativas = 0
while True:
try:
palpite = int(input("Tente adivinhar o número (1-100): "))
if not 1 <= palpite <= 100:
raise ValueError("Número fora do intervalo! Digite um número entre 1 e 100.")
tentativas += 1
if palpite < numero_secreto:
print("Muito baixo! Tente novamente.")
elif palpite > numero_secreto:
print("Muito alto! Tente novamente.")
else:
print(f"Parabéns! Você acertou o número {numero_secreto} em {tentativas} tentativas.")
break
except ValueError as e:
print(f"Entrada inválida: {e}")
adivinhar_numero()