我正在编写一个从其他程序导入函数的简单程序。它基本上将华氏温度转换为摄氏温度,反之亦然,具体取决于您给出的输入类型。这是主程序的代码:
def main():
temp = int(input('What is the temperature? '))
print('Is this temperature in fahrenheit or celsius?')
system = int(input('Please put 1 for Fahrenheit and 2 for Celsius: '))
if system == 1:
from tempconvert import celsius
celsius()
elif system == 2:
from tempconvert import fahrenheit
fahrenheit()
else:
print('I dont understand.')
main()
以下是导入函数的程序代码:
def fahrenheit(temp):
fahrenheit = temp * 1.8 + 32
print('Your temperature in fahrenheit is ', fahrenheit)
def celsius(temp):
celcius = temp - 32
celsius = celcius / 1.8
print('Your temperature in celsius is ', celsius)
当我去做的时候,它会接受我输入的温度,并且它会接受华氏温度和摄氏温度之间的区别。但是之后它会这样说:
celsius() missing 1 required positional argument: 'temp'
我真的无法弄清楚这一点,所以任何帮助都将不胜感激。感谢。
答案 0 :(得分:1)
在main()
中,您在没有fahrenheit()
参数的情况下同时调用celsius()
和temp
,但您将这些函数定义为需要位置参数temp
。
按如下方式更新main()
函数(此外,无需进行条件导入;只需导入文件顶部的两个函数):
from tempconvert import fahrenheit, celsius
def main():
temp = int(input('What is the temperature? '))
print('Is this temperature in fahrenheit or celsius?')
system = int(input('Please put 1 for Fahrenheit and 2 for Celsius: '))
if system == 1:
celsius(temp)
elif system == 2:
fahrenheit(temp)
else:
print('I dont understand.')
答案 1 :(得分:1)
您忘了将参数传递给celsius
和fahrenheit
功能。更新您的main()
功能,如下所示:
def main():
temp = int(input('What is the temperature? '))
print('Is this temperature in fahrenheit or celsius?')
system = int(input('Please put 1 for Fahrenheit and 2 for Celsius: '))
if system == 1:
from tempconvert import celsius
celsius(temp) # pass 'temp' as parameter
elif system == 2:
from tempconvert import fahrenheit
fahrenheit(temp) # pass 'temp' as parameter
else:
print('I dont understand.')
答案 2 :(得分:0)
你的错误并没有进入温度论证。尝试:
interpreted
你会得到0
如果你的程序你会这样做:
celcius(32)