随机出算术题

# -*- 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()判断字符串是否全由数字组成。



你可能感兴趣的:(Python)