Python代码在调用方法时有效,但在运行程序时无效
我想制作自己的python程序,将华氏度或摄氏度转换成另一个单位。我是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 ==
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)。谢谢。这真是太棒了。无法理解为什么它以一种方式工作,而不是另一种方式