作者: 機械伯爵
日時: 2002/4/21(20:49)
#---Python版 四則演算(+,-,*,/)ドリル ---
# 単にPythonの多機能をひけらかすだけの
# 「教育上好ましくない」コードを若干
# 含んでいます(笑)

import whrandom , operator

LIMIT = 10                      # 問題数の初期化

ope = {                         # オペレーター関数?
    "+" : operator.add ,
    "-" : operator.sub ,
    "*" : operator.mul ,
    "/" : operator.div
}
ope_list = ["+","-","*","/"]    # 入力文字の正当性判定用テーブル
cnt = LIMIT                     # カウンタ初期化
hit = 0

print "##### 四則演算(+,-,*,/)ドリル #####"

while cnt:
  a = whrandom.randint(1,100)
  b = whrandom.randint(1,100)
  if a < b : (a , b) = (b , a)  # タプルを利用したスワップ(カッコは実は不要)
  que = whrandom.choice(ope_list)
  if que == "/" and b <> 1:     # 整数倍チェック(1以外)
    b = b / 2
    a = (a / b) * b
  if a == 4 and b == 2 :
    continue                    # 4 ? 2 = 2はパスしよう・・・
  # Pythonの機能濫用出力(・・・良くない例)
  print "%d問目 %d ? %d = %d" % ((11 - cnt) , a , b , ope[que](a,b))
  while 1:
    ans = raw_input(">>")
    if ans in ope_list : break
  if que == ans :
    print "ピンポ〜ン正解!"
    hit += 1
  else :
    print "...ブ〜はずれ"
  cnt -= 1

print "あなたは %d問中 %d問正解しました。" % (LIMIT,hit)

#---END---