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('')

浙公网安备 33010602011771号