Python:NameError:未定义名称“ u”

问题描述

我正在完成一个功能的简单课堂作业。我们必须找到功能freshness在哪个月份mcontract_v更具优势。 这是我写的代码

contract_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)

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

解决方法

您的变量是在函数中本地定义的,因此它们不存在于它们之外,因此您应该在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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...