【发布时间】:2012-04-11 04:00:58
【问题描述】:
我该如何做到,如果有人输入一个大于 3000 的数字,它会打印出一条自定义消息,而不是计算该特定数字的阶乘?
我试过“如果数字 > 3000,打印“等等等等”,但它不起作用。认为它与 tkinter 有关。
from Tkinter import *
import tkMessageBox, os
#calculates factorial of inputNumber
def calculate():
number = inputNumber.get()
inputNumber.delete(0, END)
product = 1
for i in range(int(number)):
product = product * (i+1)
facAnswer.delete(1.0, END)
facAnswer.insert(END, product)
cal = Tk()
cal.title("Factorial Calculator")
cal.geometry('450x300+200+200')
#Enter the number you want the factorial of
factorialNumber = IntVar()
inputNumber = Entry(cal, textvariable=factorialNumber)
inputNumber.pack()
#executes calculate function by pressing button
enterButton= Button(cal, text="CALCULATE!", width=20,command=calculate)
enterButton.pack(side='bottom',padx=15,pady=15)
#Where the answer appears:
facAnswer = Text(cal)
facAnswer.insert(END, "Answer:")
facAnswer.pack()
cal.mainloop()
【问题讨论】:
-
定义“打印输出”。您希望消息出现在哪里?
-
在 facAnswer 中,文本小部件
-
print语句将内容放在标准输出上。它应该如何知道 Text 小部件存在,更不用说您希望文本出现在一个中,更不用说是哪一个了? -
您是否尝试调用
facAnswer.insert并显示错误消息,而不是计算结果? -
是的,我做了,它什么也没做,只是继续计算阶乘
标签: python integer tkinter limit