为了孩子的学习,用python写了个计算练习题
本帖最后由 苏紫方璇 于 2023-6-4 15:23 编辑啥也不说,先上图:
实现不同功能的计算需求。
原代码如下,欢迎提宝贵意见。
from tkinter import *
import random
def jiajian():# 加减法函数,生成加数,和,被减数,减数,差
joj=random.randint(1,2)
a = random.randint(1, 999)
b = random.randint(1, 999)
if joj==1:#随机产生
h=a+b
return
else:
if a > b:
h=a-b
return
else:
h=b-a
return
def cc(i=1):
#乘除运算,返回乘数,积。i表示难度,1为个位数,2为2位数,3为3位数,j,1是乘,2是除
jc = random.randint(1, 2)
if i==1: #难度1
a=random.randint(2,9)
b = random.randint(2, 9)
j=a*b
if jc==1:#乘法
return #1为乘法,2为除法
else:
return #1为乘法,2为除法
elif i==2: #难度2
a = random.randint(11, 99)
b = random.randint(11, 99)
j = a * b
if jc == 1:# 乘法
return # 1为乘法,2为除法
else:
return # 1为乘法,2为除法
else: #难度3
a = random.randint(101, 999)
b = random.randint(101, 999)
j = a * b
if jc == 1:# 乘法
return # 1为乘法,2为除法
else:
return # 1为乘法,2为除法
def yz():#这是按钮的验证函数。
global lista
if ent1.get()==str(lista):
ndsel()
lab1.config(text=str(lista)+lista+str(lista)+'=')
lab2.config(text='上一题解题正确,已更新题目')
lab2.config(fg='green')
ent1.delete(0,END)
ent1.focus()
else:#回答错误,清除文本框,标签2更新
ent1.delete(0,END)
ent1.focus()
lab2.config(text='解答错误请重新输入')
lab2.config(fg='red')
def ndsel():#单选按钮难度设定
global lista
a=nd.get()
if a == 1:
lista=jiajian()
lab1.config(text=str(lista) + lista + str(lista) + '=')
lab2.config(text='题目已变更')
lab2.config(fg='green')
ent1.delete(0, END)
ent1.focus()
else:
lista=cc(a-1)
lab1.config(text=str(lista) + lista + str(lista) + '=')
lab2.config(text='题目已变更')
lab2.config(fg='green')
ent1.delete(0, END)
ent1.focus()
lista=jiajian()
root=Tk()
root.title("小学加减乘除练习")
root.geometry('600x400')
labf1=LabelFrame(root,text='模式选择',width=500,height=150)
labf1.pack()
nd=IntVar()
nd.set(1)
rb1=Radiobutton(labf1,text='加减法运算',variable=nd,value=1,command=ndsel)
rb2=Radiobutton(labf1,text='十以内乘除法',variable=nd,value=2,command=ndsel)
rb3=Radiobutton(labf1,text='百以内乘除法',variable=nd,value=3,command=ndsel)
rb4=Radiobutton(labf1,text='千以内乘除法',variable=nd,value=4,command=ndsel)
rb1.pack(side=LEFT)
rb2.pack(side=LEFT)
rb3.pack(side=LEFT)
rb4.pack(side=LEFT)
lab1=Label(root,text=str(lista)+lista+str(lista)+'=',font=('宋体',28))
lab1.pack()
ent1=Entry(root,font=('宋体',28),width=10)
ent1.pack()
but1=Button(root,text='确定',font=('宋体',28),command=yz)
but1.pack()
lab2=Label(root,text='请在文本框内输入正确答案,点击确定键验算',pady=5)
lab2.pack()
'''f=open('a.txt','w',encoding='utf8')
for i in range(10000):
listb=jiajian()
f.write(str(listb)+listb+str(listb)+'='+"\t\t\t")
f.close()'''
root.mainloop() 六一儿童节,你就给整个这玩意 推荐使用下面帖子的方式插入代码(本帖已给您改了)
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)
改进下吧,至少能输出题卡 阔以阔以,学习学习了 不错,不错,要是带输出题卡,就更妙了! 一切为了下一代,老父亲不容易啊 你这是自己练手吧~
孩子还缺少计算器。哈哈~ 孩子的角度:六一儿童节,我的父亲给我造了个恶魔,还可以升级弄三角函数考察:lol 这个真不错,刚好给小孩学习用 哈哈哈也挺好的,有事没事给小朋友练练