2017-05-22 29 views
0

以下のコードは単純なサイコロを投げるプログラムです。 xを定義することは重要ですか?また、x = 'a'を定義すると、プログラムは期待どおりに動作しません。ユーザーが 'n'を入力すると、whileループは終了しません。エラー:変数が定義されていません

from random import randint 
    while x != 'N' or x != 'n': 
     rand = randint(1, 6) 
     print "Your new dice number is: " + str(rand) 
     x = raw_input("Do you want to roll again?(y/n): ") 
+0

で、あなたのプログラムは、変数Xの任意の値を割り当てられていませんwhileループの前に。 –

+0

私はx = 'a'を割り当てました。そしてプログラムはpycharmで実行されますが、ユーザーが 'n'または 'N'を入力するとループは終了しません。 –

+0

whileループのロジックが悪いため、以下の私の答えを見てください。 –

答えて

0

あなたが好きなやるべきこと:

from random import randint 
x = "y" 
while True: 
    rand = randint(1, 6) 
    print "Your new dice number is: " + str(rand) 
    x = raw_input("Do you want to roll again?(y/n): ") 
    if(x == "Y" or x == "y"): 
     continue 
    elif(x == "n" or x == "N"): 
     break 
    else: 
     print "Unknown Input" 
     break 

とループはユーザ入力「N」場合はbreak文を入れていないので、あなたのコード内で破損したりされなかった以下のコードです'n' をあなたは、whileループの前に、変数Xに値を代入する必要が

0
from random import randint 

x='s' 
あなたのプログラムで

及び第二の問題は、最初はwhileループ内のロジック(それはあなたのケースでは正常に動作していない理由を考えてみる)

while not (x == 'N' or x == 'n'): 
    rand = randint(1, 6) 
    print "Your new dice number is: " + str(rand) 
    x = raw_input("Do you want to roll again?(y/n): ") 
+0

あなたは 'Y'条件もチェックしてはいけませんか? – warl0ck

+0

@ warl0ckですが、 'Y'でも 'N'でもないときはどうなりますか? –

+0

私はそれがエラーとは関係ないことを知っていますが、良い慣行に従うだけです。 – warl0ck

関連する問題