
プログラミング初心者です。pythonを勉強しています、
子供に教える仕事をしていて、算数の割り算の問題を作るときに答えが必ず整数になる問題を作ってくれるプログラムをつくろうと思い、ちょうどrandomモジュールの使い方を勉強したので、以下のコードを書いてみたところ、エラーは出ないのですが、処理結果が表示されません。ループ処理をしているのか、ctl+cで中断するとエラー(?)が表示されます。
import random
while True:
a = random.randint(1,10)
b = random.randint(1,10)
answer = a/b
if isinstance(answer,int) == True:
break
print ("a=",a)
print ("b=",b)
print ("answer = ",answer)
File ".\mondai_sakusei.py", line 4, in <module>
b = random.randint(1,10)
File "C:\***********", line 221, in randint
return self.randrange(a, b+1)
File "C:\***********", line 197, in randrange
return istart + self._randbelow(width)
KeyboardInterrupt
No.2ベストアンサー
- 回答日時:
こんにちは
C:\>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:23:52) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> a = 2
>>> type(a)
<class 'int'>
>>> b = 4
>>> type(b)
<class 'int'>
>>> answer = a/b
>>> type(answer)
<class 'float'>
これで、なぜループから脱出しないかお分かりになると思います。
ifの条件は決してTrueになりません。
No.1さんの仰るとおり、割った余りが0か否かで判断すべきでしょう。
※
この掲示板は行頭の半角スペースが削除されてしまいます。
pythonはインデント(段付)が重要ですので、
行頭のスペースを全角や他の文字(_など)に置換して張り付けた方が良いですね。
No.1
- 回答日時:
多分、Python3で動かしちゃってるんですよ。
henjinさんが書いているのはPython2なので、Python2の上で動かさないとダメなんですよ。
あと、多分それだとhenjinさんが期待してる動作にはならないんだよね。int型/int型だと割りきれなくても切り捨てでint型の結果が返って来ちゃうんだよね。
なので、
・bとanswerに乱数を、aにはa*answerを代入する。
それか
・a,bは乱数のままで、mod=a%bのようにすればa/bの余りがmodに入るのでmod==0になるまでループにする。
にすればよさそう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求める...
-
教えてください
-
ビーリアルのユーザー名を変え...
-
【メモリ不足で落ちる(python)】
-
(再質問)エクセルのマクロボ...
-
Ruby require ライブラリー
-
ruby OpenURI::Meta
-
クリスタルレポートで困ってい...
-
プログラミングについてです。...
-
パイソンプログラム
-
7セグメント LED ディスプレイ ...
-
エクセルvbaでチェックボックス...
-
ruby while式
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ruby クラス・オブジェクト・イ...
-
ルビー言語 ライブラリー 追記
-
ruby raise句
-
ruby begin句
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VisualStudio2022でC言語プログ...
-
Accessで文字列のバイト数読み込み
-
ファイル名について
-
tomcat7 web.xml のエンコード
-
C言語で全角文字を扱いたいので...
-
VC2008+Qtの文字化け
-
Kシェルでの桁数取得
-
VBA シート上にドロップダウン...
-
Cpadで文字化け
-
スプレッドシートの関数
-
VBでまた行き詰まってしまいました
-
Ruby 文字コード判別
-
open-uriを用いた、ウェブ上か...
-
アンダーバーとバックスラッシュ
-
C言語 exitの使い方
-
VBAでダブルコーテーション入り...
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
おすすめ情報