Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Jogo de Adivinhação - Python - iniciante (bloco3, modulo1) - traceback

Olá,

O jogo de adivinhação começa bem, até que na hora de colocar o palpite, ele aceita, porém dá erro na sequência (linha 12):

  • 1 print("********************************")
  • 2 print("Bem-vindo ao jogo de adivinhação")
  • 3 print("********************************")
  • 4
  • 5 numero_secreto= "42"
  • 6
  • 7 chute_str = input("Digite seu número: ")
  • 8 print("Você digitou ", chute_str)
  • 9 chute = int(chute_str)
  • 10
  • 11 acertou = chute == numero_secreto
  • 12 maior = chute > numero_secreto
  • 13 menor = chute < numero_secreto
  • 14
  • 15 if(acertou):
  • 16 print("Você acertou!")
  • 17 else:
  • 18 if(maior):
  • 19 print("Você errou, seu chute foi maior!")
  • 20 elif(menor):
  • 21 print("Você errou, seu chute foi menor!")
  • 22
  • 23
  • 24 print("fim de jogo!")

A saída disso está da seguinte forma:


Digite seu número: 42 Você digitou 42 Traceback (most recent call last): File "C:\Users\mafes\PycharmProjects\Adivinhacao\main.py", line 12, in maior = chute > numero_secreto ^^^^^^^^^^^^^^^^^^^^^^ TypeError: '>' not supported between instances of 'int' and 'str'

Process finished with exit code 1

conseguem ajudar?
2 respostas
solução!

Gabriel,

Está fácil, mas prefiro explicar uns detalhes para que você entenda o que aconteceu, okay? Sou chato mesmo... KKKKK!

Comparação Int x String

Então... você NÃO pode comparar "string" com "int", para resolver o problema, retirar as aspas duplas na linha 5:

numero_secreto = 42

As "aspas duplas" fazem com que o número "42" vire uma "string".. NÃO é possível então comparar com uma "int", sacou o problema?

O código completo:

print("")
print("Bem-vindo ao jogo de adivinhação")
print("")

numero_secreto = 42

chute_str = input("Digite seu número: ")

print("Você digitou ", chute_str)

chute = int(chute_str)

acertou = chute == numero_secreto

maior = chute > numero_secreto
menor = chute < numero_secreto

if(acertou): 
  print("Você acertou!")
else:
  if(maior):
    print("Você errou, seu chute foi maior!") 
  elif(menor): 
    print("Você errou, seu chute foi menor!")

print("fim de jogo!")

NÃO esqueça de fechar o tópico se seu problema foi resolvido e se você gostou da minha resposta, me pontue, eu adoro estes pontinhos...

NÃO vota na "Scube" não, heim? KKKKK! É zueira!!!

[]'s,

Fabio I.

Olá Gabriel! Tudo bem?

Pelo erro apresentado, parece que você está tentando comparar um número inteiro com uma string na linha 12. Isso ocorre porque você definiu o número secreto como uma string na linha 5. Para corrigir esse problema, você pode alterar a linha 5 para definir o número secreto como um número inteiro, assim:

numero_secreto = 42

Dessa forma, você estará comparando dois números inteiros na linha 12 e o erro não ocorrerá mais.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software