2012-02-05 33 views
-1

この関数は、1つの整数を選択した後に停止しません。無限ループでこれを続けます。なぜ誰に教えてもらえませんか?またはこの問題をどうやって修理することができますか?ランダムint無限ループ

def wGen(): 
    top = len(Repo.words) 
    randInt = random.randint(0,len(Repo.words)) 
    print randInt, top 

それは、この出力を生成します(1037年には、データベース内の要素の数である)が存在

... 
214 1037 
731 1037 
46 1037 
490 1037 
447 1037 
103 1037 
342 1037 
547 1037 
565 1037 
90 1037 
... 

あなたは、私がこの「メニュー似関数」

def gameMenu(): 
"""Game Menu""" 

gameMenuPrint() 

def m(): 
    inp = raw_input('enter option: ') 
    while inp != 'q': 
     if inp == 'play' or inp =='1': GameC.wGen() 
     elif inp == 'help' or inp =='2': pass 
     elif inp == 'back' or inp =='0': mainMenu() 
     else: 
      print 'wrong input!' 
      inp = raw_input('enter valid a option!: ') 
m() 
+1

呼び出しコードを表示できますか? –

+0

あなたに与えられた機能は私のために働きます。問題は別のところです。 – a3nm

+0

私は機能を呼び出すコードで自分の投稿を編集しました。それはあなたが意味することですか? –

答えて

4
で関数を呼び出す行きます

この部分は問題です:

def m(): 
    inp = raw_input('enter option: ') 
    while inp != 'q': 
     if inp == 'play' or inp =='1': GameC.wGen() 
     elif inp == 'help' or inp =='2': pass 
     elif inp == 'back' or inp =='0': mainMenu() 
     else: 
      print 'wrong input!' 
      inp = raw_input('enter valid a option!: ') 

ループに入る前にraw_inputをお尋ねします。ループに入ると、決して入力を再度要求しません。このように変更します。

def m(): 
    inp = raw_input('enter option: ') 
    while inp != 'q': 
     if inp == 'play' or inp =='1': GameC.wGen() 
     elif inp == 'help' or inp =='2': pass 
     elif inp == 'back' or inp =='0': mainMenu() 
     else: 
      print 'wrong input!' 
     inp = raw_input('enter option: ') 

私は実際にこれを好むけれども:彼らは最初のraw_inputで「Q」を入力しない限り

def m(): 
    while True: 
     inp = raw_input('enter option: ') 
     if inp == 'q': break 
     elif inp == 'play' or inp =='1': GameC.wGen() 
     elif inp == 'help' or inp =='2': pass 
     elif inp == 'back' or inp =='0': mainMenu() 
     else: 
      print 'wrong input!' 
+0

gameMenu()内のm()i calを呼び出すようにしてください。もう一度見てください –

+0

@ BogdanMaier何ですか?私の答えを理解しましたか? –

+0

ありがとう、私はwGen()後emnuに戻って忘れて、それを理解して、これまでに感謝のためにループ、あなたはそれを指摘右:ありがとう –

0

while条件は常にtrueになります。 inpの新しい価値は決して得られません。 whileループに別のraw_inputを追加します。