2016-09-16 110 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() 

编辑:假设你正在使用input in Python3(或在旧版本的Python使用raw_input),你可能想除了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并增加了一个突破,因为否则会无限循环(比较字符串输入值的整数)。