を作ってるんだどこの誰かは私が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はTrue
にwhile
ループ条件を変更し、それ以外の場合はループ無期限に(文字列入力値の整数を比較する)になるのでブレークを追加しました。
コードを正しくフォーマットしてください – Li357
実際に私はそれをフォーマットしました。ここにコピーすると、このようになりました。論理的な間違いがあるのですか? – Pinkpretty
*こちら*を正しくフォーマットしてください。そして、あなたはどんなエラーを受けましたか? –