Python 从另一个文件调用的数学函数出现问题

Python 从另一个文件调用的数学函数出现问题,python,Python,我目前正在开发一个单位转换计算器,希望通过从另一个文件调用数学函数使它更平滑。目前,摄氏->华氏温度(CF)被置于'func.py'中,如下所示: # This file has all the math functions that get called by main.py when needed. # Also, VARIABLES! num = 0 typ = 0 def CF(): tota = (num * 9/5) + 32 print("Answer: &qu

我目前正在开发一个单位转换计算器,希望通过从另一个文件调用数学函数使它更平滑。目前,摄氏->华氏温度(CF)被置于'func.py'中,如下所示:

# This file has all the math functions that get called by main.py when needed.
# Also, VARIABLES!
num = 0
typ = 0

def CF():
  tota = (num * 9/5) + 32
  print("Answer: " + str(tota) + " degrees Fahrenheit")
if (typ == str('C-F')):
  num = int(input("Enter the temperature in Celcius: "))
  num = num
  CF()
在main.py中调用它的代码如下所示:

# This file has all the math functions that get called by main.py when needed.
# Also, VARIABLES!
num = 0
typ = 0

def CF():
  tota = (num * 9/5) + 32
  print("Answer: " + str(tota) + " degrees Fahrenheit")
if (typ == str('C-F')):
  num = int(input("Enter the temperature in Celcius: "))
  num = num
  CF()
我想我导入了一些错误的内容,但是我已经多次编辑了导入函数。我不是在寻找某种类型的完全纠正,我希望有人告诉我我做错了什么,这样我就可以纠正它。如果有帮助的话,我用了repl.it。即使有人能告诉我这是可能的,也会有帮助的


我在Geeksforgeks这样的网站上找不到任何东西,这是我研究的主要来源。

您需要使用函数参数和返回(有关教程,请参阅)

#func.py
def CF(数值):
返回(数字*9/5)+32
#main.py
如果(类型==str('C-F')):
num=int(输入(“以摄氏度输入温度:”)
tota=CF(数量)
打印(“回答:“+str(tota)+”华氏度”)
这很奇怪:

def CF():
您依赖于在其模块内的模块范围内定义的
num
。 这样做要好得多,所以您要传递一个参数:

def cf(num):
main.py
中,您正在执行此操作,但没有任何帮助:

num = num
最好把它传进来:

cf(num)

你一直缺少的一个大概念是你有两个不同的模块, 每个变量都有一个
num
变量。 他们是不同的。 更改一个不会自动影响另一个


改为使用函数参数。

您的文件结构是什么样的,您的导入是什么?运行main.py时出现了什么错误?实际上,我没有遇到错误。它只是没有显示解决方案。至于我的导入,
来自func import CF
,它只是main.py和func.py。问题是每个文件都有自己的变量。您可以在调用函数之前执行
func.num=num
,但更好的解决方案是使用函数参数和返回(请参阅下面的答案)。