温度对话华氏度到摄氏度

2024-09-30 08:17:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图把温度从华氏度转换成摄氏度,反之亦然。将华氏度转换为摄氏度的“>>>>;”不起作用,而摄氏度按钮起作用。请帮忙,我想我已经看代码太久了,所以我想不出来。在

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()

Tags: textselfinitdefcolumnframetempgrid
1条回答
网友
1楼 · 发布于 2024-09-30 08:17:22

您的问题与python2中的division如何工作有关。在

比较:

a=(5/9)
b=(5/9.0)

在第一种情况下,结果是一个整数。在第二种情况下,它是一个浮点数。如果您将两个整数除,它将返回一个向下舍入的整数,在您的情况下是0,结果在任何情况下都是0。如果这两个值中的任何一个是float,则结果将是float。在python3中,任何一种情况都将给出相同的float结果。在

这应该是有效的:

^{pr2}$

顺便说一下,你把摄氏度换算成华氏度的公式是不正确的。先乘以9/5再加32! 它应该是:

fahren = ((9/5.0) * cel) + 32

相关问题 更多 >

    热门问题