前言

提示:把前段时间做的一个训练小朋友计算能力的python小程序做了一个封装GUI,使用起来非常方便,题海战术可以大幅度提升小朋友的计算能力,目前做好了小数正负数整数的程序,欢迎大家探讨。

一、代码

代码如下:

import  tkinter
import random
from tkinter.messagebox import showinfo
import tkinter.simpledialog
import tkinter.font as tf

global val
val = 0
global ture_cnt
ture_cnt = 0
global all_cnt
all_cnt = 0

def init_page():
    def qingchu():
        text1.delete(1.0,tkinter.END)
    def tongji():
        txt1="已做{0}题 对了{1}题\n".format(str(all_cnt),str(ture_cnt))
        text1.insert("insert",txt1,"jisuan")
    def jia(a,b,c,d):
        reslt=a+b
        txt1="{0} + {1} =".format(str(a),str(b))
        text1.insert("insert",txt1,"jisuan")
        print(reslt)
        return reslt
    def jian(a,b,c,d):
        reslt=a-b
        txt2="{0} - {1} =".format(str(a),str(b))
        text1.insert("insert",txt2,"jisuan")
        print(reslt)
        return reslt
    def cheng(a,b,c,d):
        reslt=a*b
        txt3="{0} * {1} =".format(str(a),str(b))
        text1.insert("insert",txt3,"jisuan")
        print(reslt)
        return reslt
    def chu(a,b,c,d):
        reslt=d/c
        txt4="{0} / {1} =".format(str(d),str(c))
        text1.insert("insert",txt4,"jisuan")
        print(reslt)
        return reslt
    def other(a,b,c,d):
        print('error')
        return 0
    def moshi_choose(num,a,b,c,d):
        numbers = {
            1 : jia,
            2 : jian,
            3 : cheng,
            4 : chu
        }
        method = numbers.get(num,other)
        if method:
            out=method(a,b,c,d)
        return out
    def queren():
        temp=float(shuru.get())
        txt1="{0}\n".format(str(temp))
        text1.insert("insert",txt1,"jisuan")
        global val
        if abs(val-temp) < 0.00001:
            global ture_cnt
            ture_cnt = ture_cnt + 1
            text1.insert("insert","对了\n","tag_dui")
            print("对了")
        else:
            txt1="错了,正确答案为:{0}\n".format(str(val))
            text1.insert("insert",txt1,"tag_cuo")
            print("错了,正确答案为:",val)
        print("已做",all_cnt,"题","对了",ture_cnt,"题")

    def jisuan(x,y,piont,moshi):
        a=random.uniform(x,y)
        b=random.uniform(x,y)
        c=random.randint(0,100)
        a=round(a,piont)
        b=round(b,piont)
        d=a*c
        d=round(d,piont)
        print(a,b,c,d)
        reslt=moshi_choose(moshi,a,b,c,d)
        return reslt

    def getuser():
        global val
        h1 = get_choose1.get()
        h2 = get_choose2.get()
        val=jisuan(1,100,h2,h1)
        global all_cnt
        all_cnt = all_cnt + 1
    init_page=tkinter.Tk()
    init_page.title("功能选择") #设置窗口标题
    init_page.geometry("800x500") #设置窗口尺寸
    l1=tkinter.Label(init_page,text="模式选择:") #标签
    l1.grid(row=0) #指定包管理器放置组件
    choose1 = [("+", 1),("-", 2),("*", 3),("/", 4)]
    get_choose1 = tkinter.IntVar()
    for i, num in choose1:
        b = tkinter.Radiobutton(init_page, text=i, variable=get_choose1, value=num)
        b.grid(row=0,column=num)

    l2=tkinter.Label(init_page,text="小数位:") #标签
    l2.grid(row=1,column=0)#指定包管理器放置组件
    choose2 = [("0", 0),("2", 2)]
    get_choose2 = tkinter.IntVar()
    for i, num in choose2:
        b = tkinter.Radiobutton(init_page, text=i, variable=get_choose2, value=num)
        b.grid(row=1,column=num+1)
    butt = tkinter.Button(init_page,text='生成',command = getuser)
    butt.grid(row=0,column=6,rowspan=2,columnspan=4)
    text1 = tkinter.Text(init_page)
    text1.grid(row=5,column=1,rowspan=5,columnspan=5)
    #ft1 = tf.Font(family='仿宋',size=10)
    ft2 = tf.Font(family='微软雅黑',size=20)
    text1.tag_config("tag_cuo", backgroun="yellow", foreground="red",font =ft2)
    text1.tag_config("tag_dui", backgroun="blue", foreground="white",font =ft2)
    text1.tag_config("jisuan",font =ft2)
    shuru = tkinter.Entry(init_page)
    shuru.grid(row=3,column=8,rowspan=1,columnspan=1)
    button3 = tkinter.Button(init_page,text='输入',command = queren)
    button3.grid(row=4,column=8)#按钮
    button4 = tkinter.Button(init_page,text='统计',bg = 'blue',command = tongji)
    button4.grid(row=5,column=8)#按钮
    button5 = tkinter.Button(init_page,text='清除窗口',command = qingchu)
    button5.grid(row=6,column=8)#按钮

    init_page.mainloop()
init_page()

效果

过年的时候,给到访的熊孩子练一练,嘿嘿嘿

 

本文地址:https://blog.csdn.net/z555hzl/article/details/110929608