2017-09-28 10 views
1

「数字の推測」というゲームを作成したかったのです。WhileループでのPythonの問題

乱数を生成し、それをユーザが入力した値と比較して、それが正解/間違った回数をテキストファイルに書きたいと思っていました。

プログラムの最初の部分は正常に動作し、問題は最後に表示されます。ここでは、プログラムを終了するか続行するかを決定するユーザーの入力を求めています。

終了するか続行するかについてユーザーの入力を求め続けます。

例: -

は推測番号ゲームへようこそ!あなたが番号を間違って推測

4:

は1〜10までの数字を入力してください! E

押してQを継続するには、quitまたはEする:Q

押してQを継続するには、quitまたはEする:継続するには、quitまたはEする

押しQ E

doesnの」終了するか、プログラムを続行してください、以下は私のコードです、私を助けてください。 Pythonの初心者、自己学習。

import random 


print "Welcome to the Guess the Number game!" 
print 

c = True 
lost = 0 
win = 0 
j = "" 
d = True 

while c == True: 
    v = random.randint(1,10) 
    n = input("Enter a number between 1 to 10 : ") 
    print 
    if n > 10: 
     print "The number you entered is above 10, please enter a number below 10." 
     print 
    elif n < 0: 
     print "The number you entered is below 0, please enter a number above 0." 
     print 
    elif 0<n<10: 
     print "Progressing..." 
     print 
    else: 
     j = " " 
    if n == v: 
     print "Congratulations, you guess the number correctly!" 
     print 
     win = win + 1 
     file = open("text.txt","w") 
     file.write("Number of times won : %s \n" %(win)) 
     file.close() 
    else: 
     print "You guess the number incorrectly!" 
     print   
     lost = lost + 1 
     file = open("text.txt","w") 
     file.write("Number of times lost : %s \n" %(lost)) 
     file.close()  
    while d == True: 
     response = raw_input("Press Q to quit or E to continue : ") 
     response = str(response)   
     print   
     if response == 'Q': 
      c = False 
      d == False 
     elif response == 'E': 
      c = True 
      d == False 
     else: 
      print("Please read the instructions properly and press the proper button.") 
      print   
      d == True 

答えて

0

あなたの問題は、このwhileループ

while d == True: 
    response = raw_input("Press Q to quit or E to continue : ") 
    response = str(response)   
    print   
    if response == 'Q': 
     c = False 
     d == False 
    elif response == 'E': 
     c = True 
     d == False 
    else: 
     print("Please read the instructions properly and press the proper button.") 
     print   
     d == True 

=(代入演算子)と==(比較演算子)最初の1(=)の間には大きな差があるものを書き換えますです変数は新しい値をメモリに格納して格納します。 ==ただし、左側のものと右側のものだけを比較するので、d == FalseまたはTrueを指定するときは不可欠なので、変数を再割り当てすることは決してなく、ループ内に永遠に留まります。これを修正するには、これに変更するだけです。

while d == True: 
    response = raw_input("Press Q to quit or E to continue : ") 
    response = str(response)   
    print   
    if response == 'Q': 
     c = False 
     d = False 
    elif response == 'E': 
     c = True 
     d = False 
    else: 
     print("Please read the instructions properly and press the proper button.") 
     print   
     d = True 
+0

ありがとう!私の悪い、私はちょうど "d == false"の部分をコピーして貼り付けました! –