2016-08-20 7 views
0

私は端末の数値のpythonゲームを推測しましたが、そのゲームはプレーヤーが勝ったときに認識できず、理由を理解できません。ここに私のコードは次のとおりです。Pythonの問題数のゲームを推測する

from random import randint 

import sys 

def function(): 

    while (1 == 1): 

     a = raw_input('Want to Play?') 

     if (a == 'y'): 

      r = randint(1, 100) 

      print('Guess the Number:') 
      print('The number is between 1 and 100') 

      b = raw_input() 

      if (b == r): 

       print(r, 'You Won') 

      elif (b != r): 

       print(r, 'You Lose')  

     elif (a == 'n'): 

      sys.exit() 

     else: 

      print('You Did Not Answered the Question')   

function() 
+0

FWIW:

>>>b = raw_input("Enter a number : ") Enter a number : 5 >>>print b '5' >>>type(b) <type 'str'> 

あなたがために、それはrandint数に等しいevaluteし、文字列を整数に変換する必要があります&効率的)while(1 == 1): 'よりも効率的です。そして、それらの外側のかっこを 'if'条件の周りで取り除くべきです。それらはPythonでは必要ではなく、単に乱雑さを追加します。だから 'if(a == 'y')の代わりに、a == 'y':'なら 'just do'を実行します。等 –

+0

あなたのコードの私の[レビュー](https://github.com/CrazyPython/code-review-diffs/commit/eec947bcfe8455ea8a103d054a3f259233e06b5c)を読んでください。正直言って、それは恐ろしいです。しかし、私たちはすべて恐ろしいから始まります。次回は 'print()'文と 'type()'を使ってプログラムをデバッグします –

+0

(他の質問では)あなたの質問に答えたら削除しないでください。 (あなたがあなた自身を削除した場合)それはa)私の苦労して得た評判を取り除くb)同じ問題を持つ他の人々があなたの質問を見つけることができないことを意味します。 –

答えて

0

によって返されたint型と比較されている文字列を返します。

import random 
while (1 == 1): 
    a = raw_input('Want to Play?') 
    if (a == 'y'): 
    r = random.randint(1, 100) 
    print('Guess the Number:') 
    print('The number is between 1 and 100') 
    b = int(raw_input()) 
    if (b == r): 
     print(r, 'You Won') 
    elif (b != r): 
     print(r, 'You Lose')  
    elif (a == 'n'): 
    break 
else: 
    print('You Did Not Answered the Question') 

これが役に立ちます。

+0

それは、ありがとう、働いた。 – Andrea

1

raw_input()これは私があなたの質問のために書いたコードの正しいバージョンであるあなたがrandint

2

FujiApple's answerのとおり: 入力の種類はデフォルトで文字列です。だから、

: `(明確である:真の間、`、

if int(b) == r: 
関連する問題