使用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()
希望大家帮忙指正,代码有些杂乱。