Python 摄氏至华氏温度法不适用';行不通

Python 摄氏至华氏温度法不适用';行不通,python,tkinter,methods,Python,Tkinter,Methods,我是计算机开发领域的新手,我从Python开始 我尝试使用Tkinter创建一个摄氏-华氏(反之亦然)转换器。我创建了一个名为“摄氏度到华氏度”的方法,我这样定义它: def celsius_to_fahrenheit(): n = celsius_entry.get() result = n * 9 / 5 + 32 fahrenheit_entry.delete(0, END) fahrenheit_entry.insert(0, result) 该方法由一

我是计算机开发领域的新手,我从Python开始

我尝试使用Tkinter创建一个摄氏-华氏(反之亦然)转换器。我创建了一个名为“摄氏度到华氏度”的方法,我这样定义它:

def celsius_to_fahrenheit():
    n = celsius_entry.get()
    result = n * 9 / 5 + 32
    fahrenheit_entry.delete(0, END)
    fahrenheit_entry.insert(0, result)
该方法由一个按钮启动,当我按下该按钮时,出现以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\[Me]\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "D:/Mes Documents/[Me]/Programmation/Python/Projets/ui/degree_farenheit.py", line 7, in celsius_to_fahrenheit
    result = n * 9 / 5 + 32
TypeError: unsupported operand type(s) for /: 'str' and 'int'

我希望你能帮助我

n的类型是str。在计算之前,需要将其转换为FLOAT

n = float(celsius_entry.get())

n的类型为str。在计算之前,需要将其转换为FLOAT

n = float(celsius_entry.get())

下面是一个工作示例的完整代码:

from tkinter import *

degree_sign= u'\N{DEGREE SIGN}'

window = Tk()
window.title( '%cF -> %cC' % (degree_sign,degree_sign) )

entry = Entry( window )
entry2 = Entry( window )

def celsius_to_fahrenheit():
    n = float(entry.get())
    result = (n * (9/5)) + 32
    entry.delete(0, END)
    entry2.delete(0, END)
    entry2.insert(0, result)

def fahrenheit_to_celcius():
    n = float(entry2.get())
    result = (n -32) / (9/5)
    entry2.delete(0, END)
    entry.delete(0, END)
    entry.insert(0, result)

label = Label(window, text = 'Enter Celcius')
label.grid( row=1,column=1)
entry.grid( row=1,column=2 )
btn = Button( window , text = 'Convert to Farenheit' , command=celsius_to_fahrenheit )
btn.grid( row=1,column=3 )

label2 = Label(window, text = 'Enter Farenheit')
label2.grid( row=2,column=1)
entry2.grid( row=2,column=2 )
btn2 = Button( window , text = 'Convert to Celcius' , command=fahrenheit_to_celcius )
btn2.grid( row=2,column=3 )

window.mainloop()


下面是一个工作示例的完整代码:

from tkinter import *

degree_sign= u'\N{DEGREE SIGN}'

window = Tk()
window.title( '%cF -> %cC' % (degree_sign,degree_sign) )

entry = Entry( window )
entry2 = Entry( window )

def celsius_to_fahrenheit():
    n = float(entry.get())
    result = (n * (9/5)) + 32
    entry.delete(0, END)
    entry2.delete(0, END)
    entry2.insert(0, result)

def fahrenheit_to_celcius():
    n = float(entry2.get())
    result = (n -32) / (9/5)
    entry2.delete(0, END)
    entry.delete(0, END)
    entry.insert(0, result)

label = Label(window, text = 'Enter Celcius')
label.grid( row=1,column=1)
entry.grid( row=1,column=2 )
btn = Button( window , text = 'Convert to Farenheit' , command=celsius_to_fahrenheit )
btn.grid( row=1,column=3 )

label2 = Label(window, text = 'Enter Farenheit')
label2.grid( row=2,column=1)
entry2.grid( row=2,column=2 )
btn2 = Button( window , text = 'Convert to Celcius' , command=fahrenheit_to_celcius )
btn2.grid( row=2,column=3 )

window.mainloop()


您是否尝试过将“n=Celsiu-entry.get()”更改为“n=float(Celsiu-entry.get())”?错误是不言自明的,您不能将字符串除以整数。是否尝试过将“n=Celsiu-entry.get()”更改为“n=float(Celsiu-entry.get())”?这个错误是不言自明的,你不能将字符串除以整数。我尝试了这个方法,但我有一个新的错误:`` Tkinter回调回溯中的异常(最近一次调用):文件“C:\Users[Me]\AppData\Local\Programs\Python\Python38\lib\Tkinter\u init\uuuy.py”,第1883行,在调用返回self.func(*args)文件“D:/Mes Documents/[Me]/Programmation/Python/Projets/ui/degree_farenheit.py”,第6行,单位为摄氏度到华氏度n=float(摄氏度输入.get())ValueError:无法将字符串转换为float:“```@这是因为您没有在条目中输入任何内容。但是我如何才能获得我在条目上输入的内容以使用itI尝试此操作,但我遇到了一个新错误:``` Tkinter回调回溯中的异常(最近一次调用):文件“C:\Users[Me]\AppData\Local\Programs\Python\Python38\lib\Tkinter\u init.py”,第1883行,在调用返回self.func(*args)文件“D:/Mes Documents/[Me]/Programmation/Python/Projets/ui/degree\u farenheit.py”中,第6行,单位为摄氏度到华氏度n=float(摄氏度输入.get())ValueError:无法将字符串转换为float:“```@itswide这是因为您在条目中未输入任何内容。但是我如何才能获得在条目上输入的内容以使用它