hello world

python3生成数学计算题

随机生成一系列算术题,给小朋友练习

 

#coding=utf-8
import random

#连续两位数乘以9,尾数相乘放两边,中间放0
T1=[]
while len(T1) < 8:
    a=random.randint(1,8)
    b=a+1
    T1.append('%d%d x 9 =' % (a,b))
    T1=list(set(T1))

#两位数减一位数,后数比前数尾数大
#两位数减法,前数的后位比后数小,前数减1=7,后数的补数(10-9)+前数尾数(5)
T2=[]
while len(T2) < 8:
    a=repr(random.randint(20,99))
    b=repr(random.randrange(1,9))
    if (int(a[1]) > int(b)):
        a=a[0]+b
        b=a[1]
    if a[1] != b:
        T2.append('%s - %s =' % (a,b))
    T2=list(set(T2))

#偶数乘以15,偶数除以2再加上自己,尾数写0
T3=[]
while len(T3) < 8:
    a=random.choice(range(22,100,2))
    T3.append('%d x 15 =' %a)
    T3=list(set(T3))

#三位数中间为0的相乘,前数分别相乘放前面,尾数分别相乘放后面,中间的交叉相乘再相加
T4=[]
while len(T4) < 8:
    a=repr(random.randint(1,9))+'0'+repr(random.randint(1,9))
    b=repr(random.randint(1,9))+'0'+repr(random.randint(1,9))
    T4.append('%s x %s =' % (a,b))
    T4=list(set(T4))
    
#两位末尾是1的数相乘,尾数为1,前数相乘,然后前数相加放中间,如果有进制,加到前数
T5=[]
while len(T5) < 8:
    a=repr(random.randint(1,9))+'1'
    b=repr(random.randint(1,9))+'1'
    T5.append('%s x %s =' % (a,b))
    T5=list(set(T5))

#相邻2个数的平方差,就是2个数的和
T6=[]
while len(T6) < 8:
    a=random.randint(20,99)
    b=a-1
    T6.append('%dx%d - %sx%d =' % (a,a,b,b))
    T6=list(set(T6))

#首位相同,尾数相加得10的两位数乘法,头+1乘以头在前数,尾数为尾数乘积
T7=[]
while len(T7) < 10:
    a=random.randint(1,9)
    b=random.randint(1,9)    
    T7.append('%d%d x %d%d =' % (a,b,a,10-b))
    T7=list(set(T7))
    
#一位数乘以999,单数乘9放两边,中间放2个9
T8=[]
while len(T8) < 6:
    a=random.randint(2,9)
    T8.append('%d x 999 =' %a)
    T8=list(set(T8))
    
#十位数互补,个位数相同的两位数乘法,十位相乘加个位,个位相乘写后面(未满10补零)
T9=[]
while len(T9) < 8:
    a=random.randint(1,9)
    b=random.randint(1,9)
    T9.append('%d%d x %d%d =' % (a,b,10-a,b))
    T9=list(set(T9))
    
#一个数的十位和个位互补,另一个数个位和十位相同的乘法运算:
#(互补数的十位+1)x另一个数一位为首,互补数的个位x另一个数一位为尾
T10=[]
while len(T10) < 8:
    a=random.randint(1,9)
    b=random.randint(1,9)
    T10.append('%d%d x %d%d =' % (a,10-a,b,b))
    T10=list(set(T10))

#一个数乘以11的乘法运算:首尾分别写在首尾,中间从高到低,为本数依次两位数的两两相加
T11=[]
while len(T11) < 8:
    a=random.randint(30,7000)
    T11.append('%d x 11 =' % a)
    T11=list(set(T11))

#十几乘十几,第一个数加上第二个数的数尾的和乘10,再加两个数的尾数积
T12=[]
while len(T12) < 8:
    a=random.randint(11,19)
    b=random.randint(11,19)
    T12.append('%d x %d =' % (a,b))
    T12=list(set(T12))

#两位数相乘,十位相同,个位不同,十位相乘为首位,
#个位相加之和乘以十位,满10进首尾,零头为十位,个位相乘为个位
T13=[]
while len(T13) < 8:
    a=random.randint(1,9)
    b=random.randint(1,9)
    c=random.randint(1,9)
    T13.append('%d%d x %d%d =' % (a,b,a,c))
    T13=list(set(T13))

#任意两位数的平方,十位平方为首,十位x个位x2,满10进首,余数为十位,加到个位的平方上
T14=[]
while len(T14) < 8:
    a=random.randint(11,99)
    T14.append('%d x %d =' % (a,a))
    T14=list(set(T14))

#任意两位数相乘,十位相乘在前,个位相乘在后,十位x另一数个位+个位x另一数十位,尾数为十位,满10前进
T15=[]
while len(T15) < 8:
    a=random.randint(11,99)
    b=random.randint(11,99)
    T15.append('%d x %d =' % (a,b))
    T15=list(set(T15))
    
T=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10+T11+T12+T13+T14+T15
random.shuffle(T)
line=0
for i in T:
    print('%s%s' %(i,'\t\t'),end='')
    line+=1
    if line % 4 == 0:
        print('')

 

posted @ 2019-08-03 20:50  浩天四哥  阅读(932)  评论(0)    收藏  举报