源码
from tkinter import *
from tkinter import ttk
from tkinter import Menu
import random
from math import pi
root = Tk()
root.title("语言选择")
languages = ["中文", "英文", "俄文"]
language_var = StringVar()
language_combo = ttk.Combobox(root, textvariable=language_var, values=languages)
language_combo.grid(column=0, row=0)
language_combo.current(0)
def submit_language():
global selected_language
selected_language = language_var.get()
root.destroy()
submit_button = ttk.Button(root, text="确定", command=submit_language)
submit_button.grid(column=1, row=0)
root.mainloop()
if selected_language == "中文":
#计算题
def calculate(min_val1, max_val1, min_val2, max_val2):
num1 = round(random.uniform(min_val1, max_val1), 2)
num2 = round(random.uniform(min_val2, max_val2), 2)
num3 = num1
num4 = round(100 - num2, 2)
expr = str(num1)+'×'+str(num2)+'+'+str(num3)+'×'+str(num4)
return expr
#一元方程
def equation_one():
a = random.randint(-10, 10)
if a == 0:
a = random.randint(1, 10)
b = random.randint(-10, 10)
sign_a = '-' if a < 0 else ''
sign_b = '-' if b < 0 else '+'
if b == 0:
equation = f"{sign_a}{abs(a)}x = 0"
else:
equation = f"{sign_a}{abs(a)}x {sign_b} {abs(b)} = 0"
return equation
#二元方程
def equation_two():
a = random.randint(-10, 10)
if a == 0:
a = random.randint(1, 10)
b = random.randint(-10, 10)
if b == 0:
b = random.randint(1, 10)
c = random.randint(-10, 10)
sign_a = '-' if a < 0 else ''
sign_b = '-' if b < 0 else '+'
sign_c = '-' if c < 0 else '+'
equation = f"{sign_a}{abs(a)}x {sign_b} {abs(b)}y {sign_c} {abs(c)} = 0"
return equation
#二次方程
def equation_sd():
a = random.randint(-10, 10)
if a == 0:
a = random.randint(1, 10)
b = random.randint(-10, 10)
c = random.randint(-10, 10)
sign_a = '-' if a < 0 else ''
sign_b = '-' if b < 0 else '+'
sign_c = '-' if c < 0 else '+'
equation = f"{sign_a}{abs(a)}x² {sign_b} {abs(b)}x {sign_c} {abs(c)} = 0"
return equation
def topic():
global A_e, B_e, C_e, D_g, E_g,X_o, Y_o, X_t, Y_t, X_sd, Y_sd;
A_e = calculate(10, 100, 10, 100)
B_e = calculate(10, 100, 10, 100)
C_e = calculate(10, 100, 10, 100)
D_g = calculate(10, 100, 10, 130)
E_g = calculate(10, 100, 10, 130)
X_o = equation_one()
Y_o = equation_one()
X_t = equation_two()
Y_t = equation_two()
X_sd = equation_sd()
Y_sd = equation_sd()
def up_date():
date = topic()
label1.config(text = A_e, font = ("微软雅黑", 15))
label2.config(text = B_e, font = ("微软雅黑", 15))
label3.config(text = C_e, font = ("微软雅黑", 15))
label4.config(text = D_g, font = ("微软雅黑", 15))
label5.config(text = E_g, font = ("微软雅黑", 15))
label6.config(text = X_o, font = ("微软雅黑", 15))
label7.config(text = Y_o, font = ("微软雅黑", 15))
label8.config(text = X_t, font = ("微软雅黑", 15))
label9.config(text = Y_t, font = ("微软雅黑", 15))
label10.config(text = X_sd, font = ("微软雅黑", 15))
label11.config(text = Y_sd, font = ("微软雅黑", 15))
def butt():
label.destroy()
button.destroy()
button1 = Button(root, text='重新生成', width = 20, height = 1, command = butt)
button1.place(x = 0, y = 0)
timer = root.after(0, up_date)
def temperature():
#摄氏度转华氏度函数体
def SZH():
def btnClicked1():
cd1 = float(entryCd1.get())
label1.config(text = "%.3f°C = %.3f°F" % (cd1,cd1 * 1.8 + 32))
def close_VICE_SZH():
VICE1_root.destroy()
VICE1_root = Tk(className = '摄氏度°C转华氏度°F')
VICE1_root.geometry("350x300+0+0")
close_button_VICE_SZH = Button(VICE1_root,text = "返回主界面",height=1,width=15,fg = 'red',command = close_VICE_SZH)
label1 = Label(VICE1_root,text = "摄氏度°C转华氏度°F",height = 5,width = 350,fg = "blue")
entryCd1 = Entry(VICE1_root,text = "0")
btnCal = Button(VICE1_root,text = "转换",command = btnClicked1)
label1.pack()
entryCd1.pack()
btnCal.pack()
close_button_VICE_SZH.pack()
VICE1_root.mainloop()
#华氏度转摄氏度函数体
def HZS():
def btnClicked2():
cd2 = float(entryCd2.get())
label2.config(text = "%.3f°C = %.3f°F" % (cd2,(cd2 - 32)/1.8))
def close_VICE_HZS():
VICE2_root.destroy()
VICE2_root = Tk(className = '华氏度°F转摄氏度°C')
VICE2_root.geometry("350x300+0+0")
close_button_VICE_HZS = Button(VICE2_root,text = "返回主界面",height=1,width=15,fg = 'red',command = close_VICE_HZS)
label2 = Label(VICE2_root,text = "华氏度°F转摄氏度°C",height = 5,width = 350,fg = "blue")
entryCd2 = Entry(VICE2_root,text = "0")
btnCal2 = Button(VICE2_root,text = "转换",command = btnClicked2)
label2.pack()
entryCd2.pack()
btnCal2.pack()
close_button_VICE_HZS.pack()
VICE2_root.mainloop()
#热力学温度转摄氏度函数体
def KZS():
def btnClicked3():
cd3 = float(entryCd3.get())
label3.config(text = "%.3fK = %.3f°C" % (cd3,(cd3 - 273.15)))
def close_VICE_KZS():
VICE3_root.destroy()
VICE3_root = Tk(className = '热力学温度K转摄氏度°C')
VICE3_root.geometry("350x300+0+0")
close_button_VICE_KZS = Button(VICE3_root,text = "返回主界面",height=1,width=15,fg = 'red',command = close_VICE_KZS)
label3 = Label(VICE3_root,text = "热力学温度K转摄氏度°C",height = 5,width = 350,fg = "blue")
entryCd3 = Entry(VICE3_root,text = "0")
btnCal3 = Button(VICE3_root,text = "转换",command = btnClicked3)
label3.pack()
entryCd3.pack()
btnCal3.pack()
close_button_VICE_KZS.pack()
VICE3_root.mainloop()
#摄氏度转热力学温度函数体
def SZK():
def btnClicked4():
cd4 = float(entryCd4.get())
label4.config(text = "%.3f°C = %.3fK" % (cd4,(cd4 + 273.15)))
def close_VICE_SZK():
VICE4_root.destroy()
VICE4_root = Tk(className = '摄氏度°C转热力学温度K')
VICE4_root.geometry("350x300+0+0")
close_button_VICE_SZK = Button(VICE4_root,text = "返回主界面",height=1,width=15,fg = 'red',command = close_VICE_SZK)
label4 = Label(VICE4_root,text = "摄氏度°C转热力学温度K",height = 5,width = 350,fg = "blue")
entryCd4 = Entry(VICE4_root,text = "0")
btnCal4 = Button(VICE4_root,text = "转换",command = btnClicked4)
label4.pack()
entryCd4.pack()
btnCal4.pack()
close_button_VICE_SZK.pack()
VICE4_root.mainloop()
#热力学温度转华氏度函数体
def KZH():
def btnClicked5():
cd5 = float(entryCd5.get())
label5.config(text = "%.3fK = %.3f°F" % (cd5,((cd5-273.5)*1.8/5+32)))
def close_VICE_KZH():
VICE5_root.destroy()
VICE5_root = Tk(className = '热力学温度K转华氏度°F')
VICE5_root.geometry("350x300+0+0")
close_button_VICE_KZH = Button(VICE5_root,text = "返回主界面",height=1,width=15,fg = 'red',command = close_VICE_KZH)
label5 = Label(VICE5_root,text = "热力学温度K转华氏度°F",height = 5,width = 350,fg = "blue")
entryCd5 = Entry(VICE5_root,text = "0")
btnCal5 = Button(VICE5_root,text = "转换",command = btnClicked5)
label5.pack()
entryCd5.pack()
btnCal5.pack()
close_button_VICE_KZH.pack()
VICE5_root.mainloop()
#华氏度转热力学温度函数体
def HZK():
def btnClicked6():
cd6 = float(entryCd6.get())
label6.config(text = "%.3f°F = %.3fK" % (cd6,((cd6-32)*5/1.8+273.5)))
def close_VICE_HZK():
VICE6_root.destroy()
VICE6_root = Tk(className = '华氏度°F转热力学温度K')
VICE6_root.geometry("350x300+0+0")
close_button_VICE_HZK = Button(VICE6_root,text = "返回主界面",height=1,width=15,fg = 'red',command = close_VICE_HZK)
label6 = Label(VICE6_root,text = "华氏度°F转热力学温度K",height = 5,width = 350,fg = "blue")
entryCd6 = Entry(VICE6_root,text = "0")
btnCal6 = Button(VICE6_root,text = "转换",command = btnClicked6)
label6.pack()
entryCd6.pack()
btnCal6.pack()
close_button_VICE_HZK.pack()
VICE6_root.mainloop()
#主界面关闭函数体
def close_HOST():
root.destroy()
root = Tk(className = '温度互转仪')
root.geometry("350x350+100+100")
root.overrideredirect(True)
l = Label(root,text = "转换模式",height=2,width=20,fg="orange")
close_button_HOST = Button(root,text = "×",height=1,width=5,font=("微软雅黑",15),fg = 'black',bd=0,command = close_HOST)
button1 = Button(root,text = "摄氏度°C转华氏度°F",height=1,width=30,fg = 'red',command = SZH)
button2 = Button(root,text = "华氏度°F转摄氏度°C",height=1,width=30,fg = 'red',command = HZS)
button3 = Button(root,text = "热力学温度K转摄氏度°C",height=1,width=30,fg = 'red',command = KZS)
button4 = Button(root,text = "摄氏度°C转热力学温度K",height=1,width=30,fg = 'red',command = SZK)
button5 = Button(root,text = "热力学温度K转华氏度°F",height=1,width=30,fg = 'red',command = KZH)
button6 = Button(root,text = "华氏度°F转热力学温度K",height=1,width=30,fg = 'red',command = HZK)
close_button_HOST.place(x=300,y=0)
l.pack()
button1.pack()
button2.pack()
button3.pack()
button4.pack()
button5.pack()
button6.pack()
root.mainloop()
def Y():
window= Tk()
window.title('元素周期表')
window.geometry('930x890+100+100')
window.attributes("-alpha", 0.9)
window.resizable(False, False)
L = Label(window, text = '元素周期表',font=('微软雅黑',30))
#例
introduceelement1 = Label(window,text = '原子序数↘ ↙化学符号',font=('微软雅黑',7))
introduceelement1.place(x=200,y=40)
introduceelement2 = Label(window,text = ' 95 Am',font=('微软雅黑',10))
introduceelement2.place(x=200,y=60)
introduceelement3 = Label(window,text = ' 镅',font=('微软雅黑',20))
introduceelement3.place(x=150,y=80)
introduceelement4 = Label(window,text = '元素名称 ↗(243)↰',font=('微软雅黑',10))
introduceelement4.place(x=180,y=120)
introduceelement5 = Label(window,text = ' 相对原子质量',font=('微软雅黑',10))
introduceelement5.place(x=200,y=140)
#族
FamilyIA = Label(window,text = ' IA族',font=('微软雅黑',10), relief=GROOVE)
FamilyIA.place(x=10,y=40)
FamilyIIA = Label(window,text = 'IIA族',font=('微软雅黑',10), relief=GROOVE)
FamilyIIA.place(x=60,y=120)
FamilyIIIB = Label(window,text = 'IIIB族',font=('微软雅黑',10), relief=GROOVE)
FamilyIIIB.place(x=110,y=280)
FamilyIVB = Label(window,text = 'IVB族',font=('微软雅黑',10), relief=GROOVE)
FamilyIVB.place(x=170,y=280)
FamilyVB = Label(window,text = ' VB族',font=('微软雅黑',10), relief=GROOVE)
FamilyVB.place(x=230,y=280)
FamilyVIB = Label(window,text = 'VIB族',font=('微软雅黑',10), relief=GROOVE)
FamilyVIB.place(x=280,y=280)
FamilyVIIB = Label(window,text = 'VIIB族',font=('微软雅黑',10), relief=GROOVE)
FamilyVIIB.place(x=330,y=280)
FamilyIB = Label(window,text = ' IB族',font=('微软雅黑',10), relief=GROOVE)
FamilyIB.place(x=530,y=280)
FamilyIIB = Label(window,text = ' IIB族',font=('微软雅黑',10), relief=GROOVE)
FamilyIIB.place(x=580,y=280)
FamilyIIIA = Label(window,text = ' IIIA族',font=('微软雅黑',10), relief=GROOVE)
FamilyIIIA.place(x=630,y=120)
FamilyIVA = Label(window,text = ' IVA族',font=('微软雅黑',10), relief=GROOVE)
FamilyIVA.place(x=680,y=120)
FamilyVA = Label(window,text = ' VA族',font=('微软雅黑',10), relief=GROOVE)
FamilyVA.place(x=730,y=120)
FamilyVIA = Label(window,text = ' VIA族',font=('微软雅黑',10), relief=GROOVE)
FamilyVIA.place(x=780,y=120)
FamilyVIIA = Label(window,text = ' VIIA族',font=('微软雅黑',10), relief=GROOVE)
FamilyVIIA.place(x=830,y=120)
Family0 = Label(window,text = ' 0族',font=('微软雅黑',10), relief=GROOVE)
Family0.place(x=880,y=40)
FamilyVIII = Label(window,text = ' VIII族 ' ,font=('微软雅黑',10), relief=GROOVE)
FamilyVIII.place(x=380,y=280)
#一周
#氢
FH1 = Label(window, text = '1 H',font=('微软雅黑',10))
FH1.place(x=10,y=60)
Y1 = Label(window, text = '氢',font=('微软雅黑',20))
Y1.place(x=10,y=80)
XS1 = Label(window, text = '1.008',font=('微软雅黑',10))
XS1.place(x=10,y=120)
#氦
FH2 = Label(window, text = '2 He',font=('微软雅黑',10))
FH2.place(x=880,y=60)
Y2 = Label(window, text = '氦',font=('微软雅黑',20))
Y2.place(x=880,y=80)
XS2 = Label(window, text = '4.003',font=('微软雅黑',10))
XS2.place(x=880,y=120)
#二周
#锂
FH3 = Label(window, text = '3 Li',font=('微软雅黑',10))
FH3.place(x=10,y=140)
Y3 = Label(window, text = '锂',font=('微软雅黑',20))
Y3.place(x=10,y=160)
XS3 = Label(window, text = '6.941',font=('微软雅黑',10))
XS3.place(x=10,y=200)
#铍
FH4 = Label(window, text = '4 Be',font=('微软雅黑',10))
FH4.place(x=60,y=140)
Y4 = Label(window, text = '铍',font=('微软雅黑',20))
Y4.place(x=60,y=160)
XS4 = Label(window, text = '9.012',font=('微软雅黑',10))
XS4.place(x=60,y=200)
#硼
FH5 = Label(window, text = '5 B',font=('微软雅黑',10))
FH5.place(x=630,y=140)
Y5 = Label(window, text = '硼',font=('微软雅黑',20))
Y5.place(x=630,y=160)
XS5 = Label(window, text = '10.811',font=('微软雅黑',10))
XS5.place(x=630,y=200)
#碳
FH6 = Label(window, text = '6 C',font=('微软雅黑',10))
FH6.place(x=680,y=140)
Y6 = Label(window, text = '碳',font=('微软雅黑',20))
Y6.place(x=680,y=160)
XS6 = Label(window, text = '12.011',font=('微软雅黑',10))
XS6.place(x=680,y=200)
#氮
FH7 = Label(window, text = '7 N',font=('微软雅黑',10))
FH7.place(x=730,y=140)
Y7 = Label(window, text = '氮',font=('微软雅黑',20))
Y7.place(x=730,y=160)
XS7 = Label(window, text = '14.007',font=('微软雅黑',10))
XS7.place(x=730,y=200)
#氧
FH8 = Label(window, text = '8 O',font=('微软雅黑',10))
FH8.place(x=780,y=140)
Y8 = Label(window, text = '氧',font=('微软雅黑',20))
Y8.place(x=780,y=160)
XS8 = Label(window, text = '15.999',font=('微软雅黑',10))
XS8.place(x=780,y=200)
#氟
FH9 = Label(window, text = '9 F',font=('微软雅黑',10))
FH9.place(x=830,y=140)
Y9 = Label(window, text = '氟',font=('微软雅黑',20))
Y9.place(x=830,y=160)
XS9 = Label(window, text = '18.998',font=('微软雅黑',10))
XS9.place(x=830,y=200)
#氖
FH10 = Label(window, text = '10 Ne',font=('微软雅黑',10))
FH10.place(x=880,y=140)
Y10 = Label(window, text = '氖',font=('微软雅黑',20))
Y10.place(x=880,y=160)
XS10 = Label(window, text = '20.180',font=('微软雅黑',10))
XS10.place(x=880,y=200)
#三周
#钠
FH11 = Label(window, text = '11 Na',font=('微软雅黑',10))
FH11.place(x=10,y=220)
Y11 = Label(window, text = '钠',font=('微软雅黑',20))
Y11.place(x=10,y=240)
XS11 = Label(window, text = '22.990',font=('微软雅黑',10))
XS11.place(x=10,y=280)
#镁
FH12 = Label(window, text = '12 Mg',font=('微软雅黑',10))
FH12.place(x=60,y=220)
Y12 = Label(window, text = '镁',font=('微软雅黑',20))
Y12.place(x=60,y=240)
XS12 = Label(window, text = '24.305',font=('微软雅黑',10))
XS12.place(x=60,y=280)
#铝
FH13 = Label(window, text = '13 Al',font=('微软雅黑',10))
FH13.place(x=630,y=220)
Y13 = Label(window, text = '铝',font=('微软雅黑',20))
Y13.place(x=630,y=240)
XS13 = Label(window, text = '26.982',font=('微软雅黑',10))
XS13.place(x=630,y=280)
#硅
FH14 = Label(window, text = '14 Si',font=('微软雅黑',10))
FH14.place(x=680,y=220)
Y14 = Label(window, text = '硅',font=('微软雅黑',20))
Y14.place(x=680,y=240)
XS14 = Label(window, text = '28.086',font=('微软雅黑',10))
XS14.place(x=680,y=280)
#磷
FH15 = Label(window, text = '15 P',font=('微软雅黑',10))
FH15.place(x=730,y=220)
Y15 = Label(window, text = '磷',font=('微软雅黑',20))
Y15.place(x=730,y=240)
XS15 = Label(window, text = '30.973',font=('微软雅黑',10))
XS15.place(x=730,y=280)
#硫
FH16 = Label(window, text = '16 S',font=('微软雅黑',10))
FH16.place(x=780,y=220)
Y16 = Label(window, text = '硫',font=('微软雅黑',20))
Y16.place(x=780,y=240)
XS16 = Label(window, text = '32.065',font=('微软雅黑',10))
XS16.place(x=780,y=280)
#氯
FH17 = Label(window, text = '17 Cl',font=('微软雅黑',10))
FH17.place(x=830,y=220)
Y17 = Label(window, text = '氯',font=('微软雅黑',20))
Y17.place(x=830,y=240)
XS17 = Label(window, text = '35.453',font=('微软雅黑',10))
XS17.place(x=830,y=280)
#氩
FH18 = Label(window, text = '18 Ar',font=('微软雅黑',10))
FH18.place(x=880,y=220)
Y18 = Label(window, text = '氩',font=('微软雅黑',20))
Y18.place(x=880,y=240)
XS18 = Label(window, text = '39.948',font=('微软雅黑',10))
XS18.place(x=880,y=280)
#四周
#钾
FH19 = Label(window, text = '19 K',font=('微软雅黑',10))
FH19.place(x=10,y=300)
Y19 = Label(window, text = '钾',font=('微软雅黑',20))
Y19.place(x=10,y=320)
XS19 = Label(window, text = '39.098',font=('微软雅黑',10))
XS19.place(x=10,y=360)
#钙
FH20 = Label(window, text = '20 Ca',font=('微软雅黑',10))
FH20.place(x=60,y=300)
Y20 = Label(window, text = '钙',font=('微软雅黑',20))
Y20.place(x=60,y=320)
XS20 = Label(window, text = '40.078',font=('微软雅黑',10))
XS20.place(x=60,y=360)
#钪
FH21 = Label(window, text = '21 Sc',font=('微软雅黑',10))
FH21.place(x=110,y=300)
Y21 = Label(window, text = '钪',font=('微软雅黑',20))
Y21.place(x=110,y=320)
XS21 = Label(window, text = '44.956',font=('微软雅黑',10))
XS21.place(x=110,y=360)
#钛
FH22 = Label(window, text = '22 Ti',font=('微软雅黑',10))
FH22.place(x=170,y=300)
Y22 = Label(window, text = '钛',font=('微软雅黑',20))
Y22.place(x=170,y=320)
XS22 = Label(window, text = '47.867',font=('微软雅黑',10))
XS22.place(x=170,y=360)
#钒
FH23 = Label(window, text = '23 V',font=('微软雅黑',10))
FH23.place(x=230,y=300)
Y23 = Label(window, text = '钒',font=('微软雅黑',20))
Y23.place(x=230,y=320)
XS23 = Label(window, text = '50.941',font=('微软雅黑',10))
XS23.place(x=230,y=360)
#铬
FH24 = Label(window, text = '24 Cr',font=('微软雅黑',10))
FH24.place(x=280,y=300)
Y24 = Label(window, text = '铬',font=('微软雅黑',20))
Y24.place(x=280,y=320)
XS24 = Label(window, text = '51.996',font=('微软雅黑',10))
XS24.place(x=280,y=360)
#锰
FH25 = Label(window, text = '25 Mn',font=('微软雅黑',10))
FH25.place(x=330,y=300)
Y25 = Label(window, text = '锰',font=('微软雅黑',20))
Y25.place(x=330,y=320)
XS25 = Label(window, text = '54.940',font=('微软雅黑',10))
XS25.place(x=330,y=360)
#铁
FH26 = Label(window, text = '26 Fe',font=('微软雅黑',10))
FH26.place(x=380,y=300)
Y26 = Label(window, text = '铁',font=('微软雅黑',20))
Y26.place(x=380,y=320)
XS26 = Label(window, text = '55.945',font=('微软雅黑',10))
XS26.place(x=380,y=360)
#钴