- ベストアンサー
Python構文のミスによる当たり外れ判定のエラー
- プログラミングの初心者がPythonのコードで当たり外れ判定を行っていますが、何回入力してもはずれと表示されるエラーが発生しています。
- コンピュータがランダムに選ぶ数字との比較で間違いがあるようです。
- 正しい結果が出ない原因を指摘してもらいたいとのこと。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
会話モードでやってみるとわかるんですが >>> import random >>> num_1 = range(10) >>> num_2 = raw_input('数字を入力してください\n') 数字を入力してください 5 # 入力行 >>> num_1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # num_1は0,1,..9のリスト >>> num_2 '5' # num_2は文字列 >>> isinstance(num_2,int) False # num_2は整数では無い >>> isinstance(num_2,str) True # num_2は文字列 >>> random.randint(num_1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: randint() takes exactly 3 arguments (2 given) # random.randintは3つの引数が必要:うち一つはselfなので、実質2つの引数で呼び出す ということで、おかしいところが複数あります。 表示されるのは「はずれです」ではなく、「error!」では無いですか? random.randintで出た例外エラーをtry-exeptで処理しまっているだけのような気がします。 あと、このQ&Aでは、空白やタブはまとめられたり削られたりする、というPythonのプログラムには致命的な仕様になっています。別な文字に置き換えたりして、揃えるようにしましょう。
その他の回答 (1)
- edomin7777
- ベストアンサー率40% (711/1750)
num_2 に入っているものは本当に「数字」? 「0~9」までの「文字」じゃないの? ※「raw_input」は数字に変換してくれなかったと思ったけど…。