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

时间:2013-06-04 20:45:07

标签: python python-3.x

我想制作我自己的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()

这部分代码在IDLE执行并运行execute()方法后工作。但是如果我补充一下:

execute()

到我的.py文件的末尾,有一个错误。它得到了第二个问题(华氏度或摄氏度)。它只是打破了。有办法解决吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您的代码没问题,您对execute()的返回值一无所知。添加对print()的通话,以便您可以看到转化结果,也许还要等待按键:

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

通过input()调用,Windows控制台将保持打开状态,直到您完成阅读程序必须打印的内容为止。在IDLE中运行时不需要它。

答案 1 :(得分:1)

你最后错过了这一行:

result = execute()
print(result)

您必须在案例 execute()中调用 main 函数。 现在,您可以直接在 execute()中打印结果,或者返回结果(您正在执行此操作)并将返回的值存储到var中并打印出来。 ;)