2011-07-22 23 views
0

可能性の重複:
Learning Python: If condition executing all the time番号推測プログラム不具合

このPythonコード100に1から番号を推測するために「推測()」関数は何も問題はありませんされますこれは私のプログラムも完璧に動作する「手動モード」を持っているからです。何らかの理由で、常に「推測」値を「低」に割り当て、それが100に等しくなるまで「プログラム」を「Ragequits」にします。実行中にデフォルトにとどまる 'ハイ'には何もしません。何があっても、勝利するブロックを決して実行しません。 注:変数 'high'と 'low'はそれぞれ101と0で始まり、 'guesser()'はそれらの間の数字を選択します。その人が再びプレイしたいかどうかを判断するために、コードの前に 'goOn'が使用されています。

  num = raw_input('Enter the number which you want the computer to guess. ') 
      unguessed = True 
      while unguessed: 
       if high == low + 1 or high <= low: 
        print 'Waitafligginflagginminnit! You CHEATED! *Ragequits*' 
        goOn = False 
        unguessed = False 
        print '' 
        raw_input('Press Enter to continue.') 
       guesses = guesses + 1 
       guesss = guesser() 
       print 'I guessed', guesss 
       if guesss == num: 
        print 'Yay! I won in', guesses, 'guesses!' 
        again = raw_input('Just press enter if you want to play again. Otherwise...you know the drill. ') 
        unguessed = False 
        print '\n\n' 
        if again: 
         goOn = False 
       else: 
        print 'Awww...' 
        if guesss > num: 
         high = guesss 
        elif guesss < num: 
         low = guesss 
+0

1から100までの数字は、ユーザーから取得した文字列と等しくなりません。それを整数に変換する。 – geoffspear

答えて

5

あなたは整数として推測を保持するためにint(raw_input())代わりのraw_inputを使用する必要があります。 raw_input()だけで文字列が返されるため、比較は成立しません。

これは以前の回答questionと、この正確なquestionをあなたのものとして参照してください。

+0

... MAN!嫌いです。完全に論理的に健全なプログラムを実行しているにもかかわらず、私は構文と技術を巡ります。 Granter、彼らは必要な構文と技術ですが、それでもなお...一口。少なくともC#よりも優れています。ありがとう、Raed。 – IronBeard

+1

おそらく、C#では、文字列をint変数に代入しようとするとコンパイル時にエラーが発生するため、この問題は明らかです。 – recursive