Python: NameError: name 'u' is not defined
Python: NameError: name 'u' is not defined
我正在完成一个简单的 class 函数作业。我们必须找出 m
函数 contract_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)
然而,电脑是这样说的:
---------------------------------------------------------------------------
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)
我正在完成一个简单的 class 函数作业。我们必须找出 m
函数 contract_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)
然而,电脑是这样说的:
---------------------------------------------------------------------------
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)