Python: NameError: name 'u' is not defined

Python: NameError: name 'u' is not defined

我正在完成一个简单的 class 函数作业。我们必须找出 m 函数 contract_vcontract_u 更有优势的月份。 这是我写的代码:

def contract_u(m):
  u=1000
  for i in range (m):
    u=u+80
  return u

def contract_v(m):
  v=1000
  for i in range (m):
    v=v*1.05
  return v

m=1
if u>v:
  m=m+1
else:
  print(m)

然而,电脑是这样说的:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-20-8909d368129a> in <module>()
     12 
     13 m=1
---> 14 if u>v:
     15   m=m+1
     16 else:

NameError: name 'u' is not defined

我不明白我必须修改什么以及为什么代码不能正常运行。 如果您确实知道哪里做错了,请指出。 提前谢谢你。

你的变量是在你的函数中本地定义的,所以它们不存在于它们之外,所以你应该在你的 if 语句之前添加这些行:

u=contract_u(m)
v=contract_v(m)

这里你还没有调用声明变量 u 和 v 的函数所以试试这样:

def contract_u(m):
  u=1000
  for i in range (m):
    u=u+80
  return u

def contract_v(m):
  v=1000
  for i in range (m):
    v=v*1.05
  return v

m=1
u = contract_u(m)
v = contract_v(m)
if u>v:
  m=m+1
else:
  print(m)