我需要在等式中使用GUI中的一个条目,当我试图将其转换为整数时,总是会出现错误。我试图转换的变量被标记为“radius”
import math
import tkinter as tk
circ = tk.Tk()
circ.title("Circle")
circ.geometry("150x75")
radiusLabel = tk.Label(circ, text = "What is the radius?")
radiusEntry = tk.Entry(circ)
def close_window():
circ.destroy()
radius = int(radiusEntry)
submit = tk.Button(circ, text = "Submit", command = close_window)
radiusLabel.pack()
radiusEntry.pack()
submit.pack()
circ.mainloop()
class Shape():
def __init__(self, radius):
self.circumference = float(2) * float(radius) * float(math.pi)
self.area = float(math.pi) * float(radius*radius)
def getArea(self):
return self.area
def getPerimeter(self):
return self.circumference
def __str__(self):
return "Area: %s, Circumference: %s" % (self.area, self.circumference)
circle = Shape(radius)
print(circle)
有三件事可以帮到你:
一般提示:在调试类似的东西时,使用print语句查看是否获得了预期的信息。radiusEntry总是给你一个号码吗?我想可能不是。
我相信您应该使用
radius = int(radiusEntry.get())
来获得输入值也许最好的办法是在将半径转换为int之前执行一次检查,并确保您确实在尝试转换一个数字。如果您试图转换字母或None数据类型,这可能会导致您的错误。您可以使用python
isnumeric()
方法检查字符串。你的伪代码:
相关问题 更多 >
编程相关推荐