微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在我的 Tkinter 计算器中添加高级功能?

如何解决如何在我的 Tkinter 计算器中添加高级功能?

我只是一个初学者,正在学习 Python 的 Tkinter。我尝试创建一个可以通过 StringVar() 和字符串连接进行基本算术运算的计算器。现在,我想添加功能,例如计算阶乘。谁能告诉我将阶乘函数输出集成的方法是什么,以便我可以将更多函数集成到其中?

from tkinter import *
window = Tk()
window.title('Calculator')
window.config(bg='black')
# Gets the requested values of the height and widht.
windowWidth = window.winfo_reqwidth()
windowHeight = window.winfo_reqheight()
print("Width",windowWidth,"Height",windowHeight)

# Gets both half the screen width/height and window width/height
positionRight = int(window.winfo_screenwidth() / 4 - windowWidth / 2)
positionDown = int(window.winfo_screenheight() / 4 - windowHeight / 2)

# Positions the window in the center of the page.
window.geometry("+{}+{}".format(positionRight,positionDown))


window.focus()
from tkinter import *

eq = StringVar()
eq.set('hello guys,i am a cute lil calculator')
initialzing = ""

def click_it(num):
    global initialzing

    initialzing = initialzing + str(num)
    eq.set(initialzing)

def pressequal():
    try:
        global initialzing
        total = str(eval(initialzing))
        eq.set(total)
        initialzing = ""
    except:
        eq.set("Syntax error ")
        initialzing = ""


def clear():
    global initialzing
    initialzing = ""
    eq.set("")

e = Entry(width=55,borderwidth=65,font="Helvetica 10 bold",bg='blue',textvariable=eq)
e.grid(ipady=15)
e.grid(columnspan=4,column=0,row=0,padx=10,pady=40)
# define_button
button_1 = Button(text='1',padx=70,pady=20,fg='white',bg='gray',command=lambda: click_it(1))
button_2 = Button(text='2',command=lambda: click_it(2))
button_3 = Button(text='3',command=lambda: click_it(3))
button_4 = Button(text='4',command=lambda: click_it(4))
button_5 = Button(text='5',command=lambda: click_it(5))
button_6 = Button(text='6',command=lambda: click_it(6))
button_7 = Button(text='7',command=lambda: click_it(7))
button_8 = Button(text='8',command=lambda: click_it(8))
button_9 = Button(text='9',command=lambda: click_it(9))
button_0 = Button(text='0',command=lambda: click_it(0))
button_clear = Button(text='CLR',bg='orange',command=clear)
button_add = Button(text='+',command=lambda: click_it('+'))
button_equal = Button(text='=',command=pressequal)
button_subtract = Button(text='-',command=lambda: click_it('-'))
button_multiply = Button(text='x',command=lambda: click_it('*'))
button_decimal = Button(text='.',command=lambda: click_it('.'))
button_divide = Button(text='÷',command=lambda: click_it('/'))
button_bracket_left=Button(text='(',command=lambda: click_it('('))
button_bracket_right=Button(text=')',command=lambda: click_it(')'))
# postion them
button_0.grid(row=4,column=0)
button_1.grid(row=3,column=0)
button_2.grid(row=3,column=1)
button_3.grid(row=3,column=2)
button_4.grid(row=2,column=0)
button_5.grid(row=2,column=1)
button_6.grid(row=2,column=2)
button_7.grid(row=1,column=0)
button_8.grid(row=1,column=1)
button_9.grid(row=1,column=2)
button_decimal.grid(row=5,column=2)
button_equal.grid(row=5,column=1)
button_clear.grid(row=5,column=0)
button_subtract.grid(row=3,column=3)
button_multiply.grid(row=2,column=3)
button_add.grid(row=1,column=3)
button_divide.grid(row=4,column=3)
button_bracket_left.grid(row=4,column=1)
button_bracket_right.grid(row=4,column=2)

window.mainloop()

解决方法

您可以创建一个单独的函数来计算阶乘算法非常简单

def Fact(n):
    Factorial=1
    for i in range(2,n+1)
        Factorial = Factorial*i

    return Factorial

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。