2012-01-05 3 views
0

私は、「コンピュータ」が考えている数字を推測しようとするゲームを作っています。 は、ここでは、コードのカップルの抜粋です:raw_input変数をrandom.randintに使用する方法はありますか?

彼らはコンピュータが使用する番号の範囲を取得することです
askNumber1 = str(raw_input('What range of numbers do you want? Name the minimum number here.')) 
askNumber2 = str(raw_input('Name the max number you want here.')) 

。それは右の数を得た場合、コンピュータは、乱数を生成するrandom.randintを使用して、求めてい

print 'Is this your number: ' + str(random.randint(askNumber1, askNumber2)) + '?' 

。問題は、1)文字列と整数を組み合わせることはできません。2)変数を最小値と最大値として使用させません。

提案がありますか?

+0

正しい数字を推測するまで乱数を表示したいのですか? –

答えて

1

範囲内の数字を含むリストを作成してランダムに並べ替えてから、推測するまでポップしたほうがよいでしょう。それ以外の場合は、2回目の質問の可能性があります。

askNumber1 = int(str(raw_input('What range of numbers do you want? Name the minimum number here.'))) 
askNumber2 = int(str(raw_input('Name the max number you want here.'))) 

あなたは数としてではなく、文字列として保存します。ただし、ここで

は、あなたが何をしたいです。

+0

それはうまくいきます、ありがとうございます<3 – asqapro

+0

この問題が解決したら、刻々としてください。 –

1

randintには、文字列ではなく整数の引数が必要です。 raw_inputはすでに文字列を返しているので、str()を使用して文字列を変換する必要はありません。代わりに、int()を使用して整数に変換できます。しかし、ユーザーが "hello"のような整数でないものを入力すると、例外がスローされ、プログラムが終了することに注意してください。このような場合は、再度プロンプトを表示することができます。ここでは、ユーザが整数を入力し、その整数を返すまで繰り返しraw_inputを呼び出す関数です:

def int_raw_input(prompt): 
    while True: 
     try: 
      # if the call to int() raises an 
      # exception, this won't return here 
      return int(raw_input(prompt)) 
     except ValueError: 
      # simply ignore the error and retry 
      # the loop body (i.e. prompt again) 
      pass 

あなたはその後、raw_inputへのご通話のためにこれを置き換えることができます。

0

範囲番号は文字列として保存されました。これを試してみてください:

askNumber1 =int(raw_input('What range of numbers do you want? Name the minimum number here.')) 
askNumber2 =int(raw_input('Name the max number you want here.')) 

これは、コンピュータで使用する数字の範囲を取得するためです。

print 'Is this your number: ' + str(random.randint(askNumber1, askNumber2)) + '?' 
関連する問題