cmnz
 1 import random
 2 import os
 3 import tkinter
 4 import tkinter.ttk
 5 from docx import Document
 6 columnsNumber = 4
 7 def main(rowsNumbers=20,grade=4):
 8     if grade < 3:
 9         operators = \'+-\'
10         biggest = 20
11     elif grade <= 4:
12         operators = \'+-×÷\'
13         biggest = 100
14     elif grade == 5:
15         operators = \'+-×÷(\'
16         biggest = 100
17 
18     document = Document()
19     table = document.add_table(rows=rowsNumbers,cols=columnsNumber)
20     table.style.font.name = \'宋体\'
21     for row in range(rowsNumbers):
22         for col in range(columnsNumber):
23             first = random.randint(1,biggest)
24             second = random.randint(1,biggest)
25             operator = random.choice(operators)
26 
27             if operator != \'(\':
28                 if operator == \'-\':
29                     if first < second:
30                         first,second = second,first
31                     r = str(first).ljust(2,\' \')+\' \' + operator + str(second).ljust(2,\' \') + \'=\'
32             else:
33                 third = random.randint(1,100)
34                 while True:
35                     o1 = random.choice(operators)
36                     o2 = random.choice(operators)
37                     if o1 != \'(\' and o2 !=\'(\':
38                         break
39                 rr = random.randint(1,100)
40                 if rr > 50:
41                     if o2 == \'-\':
42                         if second < third:
43                             second,third = third,second
44                     r = str(first).ljust(2,\' \') + o1 +\'(\'+str(second).ljust(2,\' \')+o2+str(third).ljust(2,\' \')+\')=\'
45                 else:
46                     if o1 == \'-\':
47                         if first < second:
48                             first,second = second,first
49                         r = \'(\' + str(first).ljust(2,\' \') + o1 +str(second).ljust(2,\' \')+\')\'+o2+str(third).ljust(2,\' \')+\'=\'
50         cell = table.cell(row,col)
51         cell.text = r
52     document.save(\'kousuan.docx\')
53 
54 if __name__ == \'__main__\':
55     app = tkinter.Tk()
56     app.title(\'KouSuan.zWrite\')
57     app[\'width\'] = 300
58     app[\'height\'] = 150
59     lableNumber = tkinter.Label(app,text=\'Number:\',justify=tkinter.RIGHT,width=50)
60     lableNumber.place(x=10,y=40,width=50,height=20)
61     comboNumber = tkinter.ttk.Combobox(app,values=(100,200,300,400,500),width=50)
62     comboNumber.place(x=70,y=40,width=50,height=20)
63 
64     labelGrade = tkinter.Label(app,text=\'Grade:\',justify=tkinter.RIGHT,width=50)
65     labelGrade.place(x=130,y=40,width=50,height=20)
66     comboGrade = tkinter.ttk.Combobox(app,values=(1,2,3,4,5),width=50)
67     comboGrade.place(x=200,y=40,width=50,height=20)
68 
69     def generate():
70         number = int(comboNumber.get())
71         grade = int(comboGrade.get())
72         main(number,grade)
73     buttonGenerate = tkinter.Button(app,text=\'\',width=40,command=generate)
74     buttonGenerate.place(x=130,y=90,width=40,height=30)
75 
76     app.mainloop()

分类:

技术点:

相关文章: