2014-02-05 2 views
0

Я новичок в Python, и я работал над угадающей игру в Python. Тем не менее, когда я настраивал параметры:Python возвращает неверные значения?

import random 
numberchosen = random.randint(0,100) 
numberchosenstr = str(numberchosen) 
print ("Let's play a number game") 
numberguessed = input("Guess a number ") 
print ("You guessed " + numberguessed) 

if numberguessed > '100': 
    print ("You guessed too high, choose a number below 100") 

if numberguessed < '0': 
    print ("You guessed too low, choose a number above 0") 

if numberguessed != numberchosen: 
    print ("wrong") 

Но, когда я запустить модуль, и выберите номер 5, например, или любое число, которое находится в пределах правильного диапазона еще не правильный номер, он всегда возвращает

Let's play a number game 
Guess a number 5 
You guessed 5 
You guessed too high, choose a number below 100 
wrong 

Итак, мой вопрос, почему Python возвращает ошибку> 100, и то, что некоторые способы это исправить?

+1

' '2'>«100'' -> 'true', не сравнить строки. –

+0

Вы сравниваете строки вместо чисел. – BrenBarn

+0

Помимо сравнения строк с числами ваш отступ печати после операторов if неверен. – Martin

ответ

7

Вы сравниваете строки, которые выполняются лексикографически (то есть в алфавитном порядке, по одному символу за раз). Но даже если один из них был int, строки всегда больше чисел. Вы должны принять котировки от вашего номера сравнения, и вызвать int() на вашем input, например, так:

numberguessed = int(input("Guess a number ")) # convert to int 
print ("You guessed {}".format(numberguessed)) # changed this too, since it would error 

if numberguessed > 100: # removed quotes 
    print ("You guessed too high, choose a number below 100") 

if numberguessed < 0: # removed quotes 
    print ("You guessed too low, choose a number above 0") 
Смежные вопросы