我试图把温度从华氏度转换成摄氏度,反之亦然。将华氏度转换为摄氏度的“>>>>;”不起作用,而摄氏度按钮起作用。请帮忙,我想我已经看代码太久了,所以我想不出来。在
from Tkinter import *
class Temp(Frame):
def __init__(self):
Frame.__init__(self)
# self._fahren = 0.0
# self._cel = 0.0
self.master.title("TempConver")
self.grid()
self._fahrenLabel = Label(self, text="Fahrenheit")
self._fahrenLabel.grid(row=0, column=0)
self._fahrenVar = DoubleVar()
self._fahrenVar.set(32.0)
self._fahrenEntry = Entry(self, textvariable = self._fahrenVar)
self._fahrenEntry.grid(row=1, column=0)
self._celLabel = Label(self, text="Celcius")
self._celLabel.grid(row=0, column=2)
self._celVar = DoubleVar()
self._celEntry = Entry(self, textvariable = self._celVar)
self._celEntry.grid(row=1, column=2)
self._fahrenButton = Button(self, text = ">>>>", command = self.FtoC)
self._fahrenButton.grid(row = 0, column = 1)
self._celButton = Button(self, text = "<<<<", command = self.CtoF)
self._celButton.grid(row = 1, column = 1)
def FtoC(self):
fahren = self._fahrenVar.get()
cel = (5/9) * (fahren - 32)
self._celVar.set(cel)
def CtoF(self):
cel = self._celVar.get()
fahren = (9/5) * (cel + 32)
self._fahrenVar.set(fahren)
def main():
Temp().mainloop()
main()
您的问题与python2中的division如何工作有关。在
比较:
在第一种情况下,结果是一个整数。在第二种情况下,它是一个浮点数。如果您将两个整数除,它将返回一个向下舍入的整数,在您的情况下是0,结果在任何情况下都是0。如果这两个值中的任何一个是float,则结果将是float。在python3中,任何一种情况都将给出相同的float结果。在
这应该是有效的:
^{pr2}$顺便说一下,你把摄氏度换算成华氏度的公式是不正确的。先乘以9/5再加32! 它应该是:
相关问题 更多 >
编程相关推荐