2015-09-22 3 views
1

Я пытаюсь создать игру угадывания, и она работает хорошо. Тем не менее, я хочу включить часть, где, если пользователь ставит число выше 100, вам говорят, что ваш выбор должен быть меньше 100. Код, как представляется, не делает этого. Что я делаю не так?Как напечатать эту строку elif

import random 
comGuess = random.randint(0,100) 
while True: 
    userGuess = int(input("Enter your guess :")) 
    if userGuess > comGuess: 
      print ("Please go lower") 
    elif userGuess < comGuess: 
      print ("Please go higher") 
    elif userGuess > (100): 
      print ("Your choice should be less than 100") 
    elif userGuess <1: 
      print ("Your choice should be less than 100") 
    else: 
     print ("Great, you got it right") 
     break 
+1

Какую переменную вы пытаетесь напечатать? –

+0

Попробуйте использовать 'userGuess> 100' и ​​используйте' raw_input', если на python 2. Также проверка более 100 должна выполняться сразу после ввода, путем отдельного 'if' – Pynchia

ответ

3

Любое число выше 100, безусловно, будет выше, чем цели, и войти в состояние if. Любое число ниже 1, безусловно, будет ниже целевого, и введите первый elif. Если вы хотите, чтобы подтвердить ввод пользователя, вы должны сделать это , прежде чем сравнивая его с comGuess:

if userGuess > (100): 
     print ("Your choice should be less than 100") 
elif userGuess <1: 
     print ("Your choice should be less than 100") 
elif userGuess > comGuess: 
     print ("Please go lower") 
elif userGuess < comGuess: 
     print ("Please go higher")  
else: 
    print ("Great, you got it right") 
    break 
1

Ваше первое if заявление догоняет ничего больше, чем comGuess, даже если это также более 100, и так elif userGuess > (100), который приходит позже, никогда не получит шанс стрелять. Либо переместите elif, либо измените первый оператор if примерно на if (userGuess > comGuess) and (userGuess <= 100).

Смежные вопросы