Python代码在调用方法时有效,但在运行程序时无效

Python代码在调用方法时有效,但在运行程序时无效,python,python-3.x,Python,Python 3.x,我想制作自己的python程序,将华氏度或摄氏度转换成另一个单位。我是python新手。这是我的密码 def f_to_c(temp): return (temp - 32) * 5 / 9 def c_to_f(temp): return temp * 9 / 5 + 32 def execute(): what = input("Unit you want to convert? (f/c) ") while (what ==

我想制作自己的python程序,将华氏度或摄氏度转换成另一个单位。我是python新手。这是我的密码

def f_to_c(temp):
        return (temp - 32) * 5 / 9
def c_to_f(temp):
        return temp * 9 / 5 + 32
def execute():
        what = input("Unit you want to convert? (f/c) ")
        while (what == "c" or what == "C" or what == "f" or what == "F"):
            if what == "c" or what == "C":
                temp = float(input("Enter degrees Celsius: "))
                return c_to_f(temp)
            else:
                temp = float(input("Enter degrees Fahrenheit: "))
                return f_to_c(temp)
        else:
            return execute()
这部分代码在空闲时执行并运行execute()方法后工作。但如果我加上:

execute()
在我的.py文件末尾,有一个错误。这涉及到第二个问题(华氏度或摄氏度)。它只是坏了。有办法解决吗


提前感谢。

您的代码很好,您没有对
execute()
的返回值进行任何操作。添加对
print()
的调用,以便查看转换结果,或者等待按键:

print(execute())
input('Press any key')

使用
input()
调用,Windows控制台将保持打开状态,直到您阅读完程序必须打印的内容。在空闲状态下运行时不需要此选项。

您在结尾处缺少以下几行:

result = execute()
print(result)
您必须在execute()中调用main函数。
现在,您可以直接在execute()中打印结果,也可以返回结果(您正在执行),并将返回的值存储到一个var中并打印出来

(what==“c”或what==“c”或what==“f”或what==“f”)
=
('cf'中的what.lower())
您的意思是有回溯,或者控制台刚刚关闭,或者什么都没发生?@Elazar谢谢。@Martijin Pieters什么都没发生。我输入一个数字,它什么也不做。只要转到新行,我就可以再次调用一个方法,如果您将
execute()
更改为
main()
what,
中的lower()将
True
用于
输入,从而导致默认的华氏温度(无论如何对于python 2.7)。谢谢。这真是太棒了。无法理解为什么它以一种方式工作,而不是另一种方式