2016-09-16 2 views
-6

Ниже приведен мой код для генерации случайного числа от 0 до 9 и проверки с использованием пользовательского ввода, является ли он более низким или равным. Когда я запускаю код, он не принимает входной сигнал и показываяУгадайте случайное число Почему я не могу ввести вход - python

ошибку в «guessNumber = INT (вход („Угадай Случайное число между 0-9“)) Файл„“, линия 1»

Может кто-нибудь пожалуйста, скажите мне, где я делаю ошибку

#Guess Random Number 
#Generate a Random number between 0 to 9 

import random 
turn = 0 

def guessRandom(): 
    secretNumber = random.randint(0,9) 
    guessNumber = int(input("Guess a Random number between 0-9")) 
    while secretNumber != guessNumber: 
     if(secretNumber > guessNumber): 
      input("You have Guessed the number higher than secretNumber. Guess Again!") 
      turn = turn + 1 
     elif (secretNumber < guessNumber): 
      input("You have guessed the number lower than secretNumber. Guess Again! ") 
     turn = turn + 1 
    if(secretNumber == guessNumber): 
     print("you Have Guessed it Right!") 

guessRandom() 
+4

Пожалуйста, правильно отформатируйте свой код – Li357

+0

Фактически я отформатировал его. Когда я копирую здесь, он пришел именно так. какая-нибудь логическая ошибка? – Pinkpretty

+1

Отформатировать его правильно * здесь *. И какая ошибка вы получили? –

ответ

0

Я думаю guessRandom() должен был быть за пределами определения метода, чтобы вызвать метод. Переменная guessNumber никогда не изменяется, так как входы не назначены guessNumber, поэтому она будет постоянно проверять исходное предположение. Кроме того, меньше или больше знаков, похоже, противоречат предполагаемому сообщению. Кроме того, turn выходит за рамки метода.

#Generate a Random number between 0 to 9 

import random 


def guessRandom(): 
    secretNumber = random.randint(0, 9) 
    guessNumber = int(input("Guess a Random number between 0-9: ")) 

    i = 0 
    while secretNumber != guessNumber: 
     if secretNumber < guessNumber: 
      print "You have guessed a number higher than secretNumber." 
      i += 1 
     elif secretNumber > guessNumber: 
      print "You have guessed a number lower than secretNumber." 
      i += 1 
     else: 
      print("you Have Guessed it Right!") 

     guessNumber = int(input("Guess Again! ")) 

    return i 

turn = 0 
turn += guessRandom() 

EDIT: Предположим, что вы используете input in Python3 (или с помощью raw_input в более старых версиях Python), вы можете для ValueError в случае, если кто входит в строку, за исключением. Например,

#Generate a Random number between 0 to 9 

import random 


def guessRandom(): 
    secretNumber = random.randint(0, 9) 
    guessNumber = input("Guess a Random number between 0-9: ") 

    i = 0 
    while True: 
     try: 
      guessNumber = int(guessNumber) 
     except ValueError: 
      pass 
     else: 
      if secretNumber < guessNumber: 
       print "You have guessed a number higher than secretNumber." 
       i += 1 
      elif secretNumber > guessNumber: 
       print "You have guessed a number lower than secretNumber." 
       i += 1 
      else: 
       print("you Have Guessed it Right!") 
       break 

     guessNumber = input("Guess Again! ") 
    return i 

turn = 0 
turn += guessRandom() 

Я изменил состояние на while петли к True и добавил перерыв, потому что в противном случае было бы цикл неопределенно долго (сравнивая целое число к значению входной строки).

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