無作為に算数の問題を出す

1743 ワード

# -*- coding: utf-8 -*-
#   :    
#   :20151123
#   :pycharm5-community python-2.7.10-32 windows7-64
#   :《        》
#           。        。      。

import random
n = raw_input("     ,        :")

if not n == "" and n.isdigit():  #         ,     int
    n = int(n)
else:
    while not n.isdigit() or n == "":  #         ,       。            。      :::
        n = raw_input(" !       :")
        if not n == "" and n.isdigit():  #         ,     
            n = int(n)
            break

cannot_division = True  #      
for i in range(0, n):
    num1_symbol = random.randint(0, 3)
    num2 = random.randint(0, 999)
    num3 = random.randint(0, 999)
    if num1_symbol == 0:
        print "%2d.%-3d + %-3d =" % (i+1, num2, num3)  #        
    elif num1_symbol == 1:
        if num2 < num3:  #          
            print "%2d.%-3d - %-3d =" % (i+1, num3, num2)
        else:
            print "%2d.%-3d - %-3d =" % (i+1, num2, num3)
    elif num1_symbol == 2:
        print "%2d.%-3d × %-3d =" % (i+1, num2, num3)
    else:  #         
        if num3 != 0 and num2 % num3 == 0:  #       
            print "%2d.%-3d ÷ %-3d =.." % (i+1, num2, num3)
        else:
            while cannot_division:
                num2 = random.randint(0, 999)
                num3 = random.randint(0, 999)
                if num3 != 0 and num2 % num3 == 0:  #    3    0,       。  ???
                    print "%2d.%-3d ÷ %-3d =" % (i+1, num2, num3)
                    cannot_division = False
    cannot_division = True  #      ,        。

算数の問題をランダムに出す:1.減算結果を負数にすることはできません.2.除算の結果、整理できるようにする.
isdigit()は、文字列がすべて数値で構成されているかどうかを判断します.