2016-08-20 9 views
-1

注:私はPython 2.7を使用しています誰かが私にこのPythonコードで何が間違っていると教えてもらえますか?

私はPythonであまり経験はありませんが、私は小さな単純なプログラムを作ることに決めました。ここでは、コードです:

import random 

while True: 
    randomNumber = random.randrange(1, 3) 
    print randomNumber 
    guessedNumber = raw_input("Choose a number between 1 and 3 ") 
    if randomNumber == guessedNumber: 
     print 'Yay! You got it right!' 
    else: 
     print 'You got it wrong :(The number was:',randomNumber 
#The first print is just for testing. 

しかし、私はそれを実行しようとすると、私はこれを取得: IDLE after i used the program a few times

誰かが私は変更する必要があるか、コードで何が間違っているものを私に言うことはできますか?

+1

注: "1"!= 1. Python 2では 'raw_input'ではなく' input'を使用できます(常に文字列を返します)。 –

+1

[入力をPythonで整数として読み取るにはどうしたらよいですか?](http://stackoverflow.com/questions/20449427/how-can-i-read-inputs-as-integers-in-python) – DeepSpace

+0

@JohnColeman 'int(raw_input())'は通常、入力を評価しようとしないため、より良いアプローチとみなされます。入力を検証するチャンスが与えられます。 – DeepSpace

答えて

0

raw_inputguessedNumberに文字列を返し、あなたのプログラムは、整数(randomNumber)に文字列(guessedNumber)とを比較し、そのif randomNumber == guessedNumberTrueに評価することはありません。

解決策は、guessedNumberintに変換し、2つの値を比較することです。

+0

ありがとう!私はstr()で追加し、それは働いた。 – Kellan

関連する問題