2016-09-16 19 views
-6

以下は0〜9の間の乱数を生成し、それがより低いか等しいかどうかをユーザ入力でチェックする私のコードです。私は、コードを実行すると、入力を取り、「guessNumber = INT(入力() 『0-9間の乱数を推測』) 『』ファイル、ライン1」推測乱数推測なぜ私は入力を入力することができません - python

エラーが表示されません

私は間違い

#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を使用して(または古いバージョンの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() 

IはTruewhileループ条件を変更し、それ以外の場合はループ無期限に(文字列入力値の整数を比較する)になるのでブレークを追加しました。

関連する問題