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