python加减乘除运算

使用python做的一个数据运算程序,计算100以内的加减乘除,数据随机产生

小游戏使用tkinter拓展包,文本的创建和随机数的生成,随机运算符的选择。
运行结果:在这里插入图片描述在这里插入图片描述将数据存入.text文件中
在这里插入图片描述

在这里插入代码片
# _*_ coding:utf _*_
# 邮箱:3195841740@qq.com
# 人员:21292
# 日期:2020/2/20 13:44
# 工具:PyCharm

#产生随机数
import random
from tkinter import *
#加法运算函数
def add_operation(number1,number2):
    return  number1+number2
#减法运算函数
def subtration(number1,number2):
    return number1-number2
#乘法运算函数
def multiplicate(number1,number2):
    return number1*number2
#除法运算函数
def divison_operation(number1,number2):
    return number1/number2

#计算数据函数
def calculate_number(number1,number2,number_operator):
    if number_operator == '+':
        return number1+number2
    elif number_operator == '-':
        return number1-number2
    elif number_operator == '*':
        return number1*number2
    elif number_operator == '/':
        return number1/number2

if __name__ == '__main__':
        number1 = random.randint(1,99)
        number2 = random.randint(1,99)
        operator = ['+','-','*','/']
        number_operator = random.choice(operator)

        master = Tk()
        frame1 = Frame(master)
        frame1.pack(padx = 10 , pady = 10)
        frame2 = Frame(master)
        frame2.pack(padx = 10,pady = 10)

        #初始话数据
        num1 = StringVar()
        num2 = StringVar()
        num3 = StringVar()
        value = StringVar()
        num_operator = StringVar()


        def test(content):
            return content.isdigit()

        num1.set(number1)
        num2.set(number2)
        num_operator.set(number_operator)
        #点击确认答案后的函数,并将数据存入文件
        def calc():
            #读取数据框的数据
            get_answer = int(num3.get())
            number1 = int(num1.get())
            number2 = int(num2.get())
            number_operator = num_operator.get()
            #计算数据的准确答案
            answer = calculate_number(number1,number2,number_operator)
            if get_answer == int(answer):
                value.set("恭喜你哦,回答正确")
            else:
                value.set("对不起,你回答错了")
            Label(frame2,textvariable = value,padx = 10,pady = 10).grid(row=2, column=2,  padx=10, pady=10)
            #写入文件指令
            with open('算术运算数据保存.text','a') as file:
                if get_answer == int(answer):
                    file.write('%d %s %d = %d\n 你输入的答案是:%d,正确答案是:%d 恭喜你哦,回答正确 \n'%(number1,number_operator,number2,get_answer,get_answer,answer))
                else:
                    file.write( '%d %s %d = %d\n 你输入的答案是:%d,正确答案是:%d 对不起,你回答错了 \n' % (number1,number_operator,number2,get_answer,get_answer,answer))

        #点击刷新一下的函数,随机产生新数据与运算符
        def news():
            #产生新数据
            number1 = random.randint(1, 99)
            number2 = random.randint(1, 99)
            number_operator = random.choice(operator)
            #将新的数据和运算符传入运算框
            num1.set(number1)
            num2.set(number2)
            num_operator.set(number_operator)
            #清空结果运算框
            num3.set('')





        testCMD = master.register(test)
        Entry(frame1, textvariable=num1, width=10, state="readonly").grid(row=0, column=0)
        Entry(frame1, textvariable=num_operator, width=1, state="readonly").grid(row=0, column=1)
        Entry(frame1, textvariable=num2, width=10, state="readonly").grid(row=0, column=2)
        Label(frame1, text='=').grid(row=0, column=3)
        Entry(frame1, textvariable=num3, validate="key", width=10, validatecommand=(testCMD, '%P')).grid(row=0, column=4)

        #底部按选择框
        Button(frame1, text="确认答案", width=10, command=calc).grid(row=1, column=0, sticky=W, padx=10, pady=10)
        Button(frame1, text='刷新进入下一题', width=12, command=news).grid(row=1, column=2, sticky=E, padx=10, pady=10)
        Button(frame1, text="退出", width=10, command=master.quit()).grid(row=1, column=4, sticky=E, padx=10, pady=10)

        mainloop()

希望大家帮忙指正,代码有些杂乱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼子爱吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值