Erro no código

32 views
Skip to first unread message

Frederico Barbosa

unread,
Oct 11, 2021, 7:48:08 PM10/11/21
to Python Brasil
Olá.
Alguém conseguiria me ajudar a ver qual o erro neste código:

numero = int(input('Olá. Sou seu computador...\nAcabei de pensar em um número entre 1 e 10.\nSerá se você consegue advinhar qual foi? \nQual é seu palpite? '))
import random
sorteado = random.randint(1,11)
print(sorteado)
tot=1
print(type(sorteado))
print(type(numero))
while numero != sorteado:
if numero < sorteado:
numero = print(int(input('Mais...tente mais uma vez!')))
tot+=1
elif numero > sorteado:
numero = print(int(input('Menos...tente mais uma vez!')))
tot+=1
print('Parabéns! Você acertou em {} tentativas.'.format(tot))

RESULTADO após a segunda iteração:

C:\Downloads\pythonexercicios\venv\Scripts\python.exe C:/Downloads/pythonexercicios/ex058.py
Olá. Sou seu computador...
Acabei de pensar em um número entre 1 e 10.
Será se você consegue advinhar qual foi? 
Qual é seu palpite? 8
3
<class 'int'>
<class 'int'>
Menos...tente mais uma vez!4
4
Traceback (most recent call last):
  File "C:\Downloads\pythonexercicios\ex058.py", line 9, in <module>
    if numero < sorteado:
TypeError: '<' not supported between instances of 'NoneType' and 'int'

Francisco Alex

unread,
Oct 12, 2021, 6:33:49 AM10/12/21
to python...@googlegroups.com
Olá Frederico Barbosa! Acabei de analisar seu código e vi que o problema está dentro do laço de repetição. 
Você, dentro do While, utilizou um print junto com o input e isso foi o que gerou o erro. 
Veja como seria a forma correta.

Captura de pantalla de 2021-10-12 07-27-08.png

Basta remover o print dentro do While :)


--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/3bb443e3-6fa9-4a16-b028-d87f38d494e4n%40googlegroups.com.

Sinval Júnior

unread,
Oct 12, 2021, 8:47:11 AM10/12/21
to python...@googlegroups.com
Seu email está marcado como span, por isso não está recebendo respostas.

João Gibbon

unread,
Oct 13, 2021, 1:34:41 PM10/13/21
to Python Brasil
Olá Frederico, como o Francisco falou, basta retirar os prints de dentro do while. além disso aqui vão outras 2 dicas:
- Nos parâmetros da função randint, os limites são inclusos (diferente do range onde o limite superior n é), então o correto seria passar randint(1, 10) e não randint(1, 11)
- Não há necessidade de incrementar a variável tot em cada if/elif, basta fazer esse incremento uma vez no final dentro do while.

Andre Luiz

unread,
Oct 13, 2021, 1:53:09 PM10/13/21
to python...@googlegroups.com
Acredito que a função print retorne "NoneType" e guarde isso na variável.

Frederico Barbosa

unread,
Oct 13, 2021, 5:52:40 PM10/13/21
to python...@googlegroups.com
Olá.
Muito obrigado a todos por terem me ajudado a resolver o problema.
Eu não vi antes, pois estava caindo em meu spam.
Valeu.
Frederico Barbosa
Engº. de Produção
Contato:
34 9 8864-3348


Reply all
Reply to author
Forward
0 new messages