2016-09-16 114 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並增加了一個突破,因爲否則會無限循環(比較字符串輸入值的整數)。