口算训练

Run Settings
LanguagePython
Language Version
Run Command
#encoding:utf-8 from random import * #----configuration option--------------------------------------- 份数 = 10 数据范围 = (0, 10) 最大值范围 = (10, 20) 两项算式个数 = 100 符号 = (0, 0) 两项算式填写位置 = (0, 2) 三项算式填写位置 = (0, 3) #---const variable----------------------------------------------- LINE_CHARS = 80 LINE_CNTS = 4 sym_str =('+', '-') KH = '( )' def displaystr(str_all, line_chars, line_calcs): new_str = [] i = 0 while i < len(str_all): new_str.append(str_all[i:i+line_calcs]) i += line_calcs for i in new_str: ln = (line_chars - len(i[line_calcs-1]))//(line_calcs-1) j = 0 while j < line_calcs - 1: print(f'{i[j]:{ln}}', end='') j += 1 print(i[j]) def make_two(cnt, dat_range, sum_range, ssym, bracket): dat = [] while len(dat) < cnt: x = randint(*dat_range) y = randint(*dat_range) s = x + y if s >= sum_range[0] and s <= sum_range[1]: sym = randint(*ssym) p = randint(*bracket) if sym == 1: d = [f'{s:2}', f'{x:2}', f'{y:2}'] else: d = [f'{x:2}', f'{y:2}', f'{s:2}'] d[p] = KH dat.append(f'{d[0]} {sym_str[sym]} {d[1]} = {d[2]}') return dat def make_three(cnt, dat_range, sum_range, ssym, bracket, size): dat = [] while len(dat) < cnt: sym1 = randint(*ssym) sym2 = randint(*ssym) if (sym1 == 1): x = randint(*sum_range) else: x = randint(*dat_range) y = randint(*dat_range) z = randint(*dat_range) p = randint(*bracket) if sym1 == 0: s1 = x + y else: s1 = x - y if s1 > sum_range[1] or s1 < sum_range[0]: continue if sym2 == 0: s2 = s1 + z else: s2 = s1 - z if s1 > sum_range[1] or s1 < sum_range[0]: continue a = [f'{x}', f'{y}', f'{z}', f'{s2}'] a[p] = KH ss = f'{a[0]}{sym_str[sym1]}{a[1]}{sym_str[sym2]}{a[2]}={a[3]}' dat.append(f'{ss:{size}}') return dat def make_one_page(cnt): all = [] print(f' {最大值范围[1]}以内的加减法训练{cnt} ') print('一年班姓名; 使用时间; 成绩:错( )题') print('') all += make_two(两项算式个数, 数据范围, 最大值范围, 符号, 两项算式填写位置) all += make_three(100- 两项算式个数, 数据范围, 最大值范围, 符号, 三项算式填写位置, len(all[0])) displaystr(all, LINE_CHARS, LINE_CNTS) print('') print('') if __name__ == '__main__': for i in range(1, 份数+1): make_one_page(i)
Editor Settings
Theme
Key bindings
Full width
Lines