2017-05-15 23 views
0

私はこのページからコードを入力しましたPythonForBeginners 私はそれを実行すれば、それは永遠に続き、私は再びダイスをロールしたいかどうか尋ねません。私は何か見落としてますか?これはうまくいくはずですか?初心者向けPython

import random 
min = 1 
max = 6 

roll_again = "yes" 

while roll_again == "yes" or roll_again == "y": 
    print "Rolling the dices..." 
    print "The values are...." 
    print random.randint(min, max) 
    print random.randint(min, max) 

    roll_again = raw_input("Roll the dices again?") 
+4

私は(最初の '輸入random'ラインを解除インデント)私のマシン上でこれを実行し、「いいえ」を入力すると、それがループを停止します。は、私にはよく見えますよ。 – Kevin

+1

「いいえ」または「はい」または「y」以外の文字を入力してください。このループはユーザ入力に基づいて実行されます –

+0

最初の行をインデントした後( 'import random')、それは私のために働くのですか?あなたはあなたのくぼみが正しいと確信していますか? –

答えて

0

これを行うための1つの方法は、このようなクラスを使用しています。

import random 
class RollTheDice(object): 

    def __init__(self): 
     self.min = 1 
     self.max = 6 
     super(RollTheDice, self).__init__() 

    def ask_something(self): 
     while True: 
      userInput = str(raw_input("Roll Again? Yes or No" + "\n")) 
      if (userInput == "Yes" or userInput == 'Y'): 
       self.rollDice() 
      else: 
       print("You didn't type 'Yes' or 'Y' no roll for you. Bye....") 
       exit() 

    def rollDice(self): 
     print "Rolling the dices..." 
     print "The values are...." 
     print random.randint(self.min, self.max) 
     print random.randint(self.min, self.max) 

RollTheDiceObject = RollTheDice() 
RollTheDiceObject.ask_something() 

ユーザーが「はい」または「Y」と入力しないと、このコードをスマートにすることができます。

whileループのいくつかの情報 - https://www.tutorialspoint.com/python/python_while_loop.htm

+0

どうもありがとうございました!私はしかし質問があります。コードは今よりはるかに複雑になりました。私は初心者なので、あなたが追加したことのほとんどを本当に理解できません。だから私の質問は実際には、私が間違って使用したコードですか? –

+0

あなたのコードを実行しました。コードを実行しました。私はwhileループを開始するためにYesで変数を持っていませんでした。クラスを見ればwhileループが始まり、ユーザー入力が必要です。 "Yes"または "Y"の場合、ask_something関数はコード内のロールダイスのようにrolldice関数を呼び出します。私は自分の正気のためにクラスに入れることに決めました。 –

関連する問題