赋值前引用的变量调用函数出错



这是我的代码

def bv(a):
if a >= 100000:
bv = "1"
elif a >= 50000 and a < 100000:
bv = "2"
elif a >= 20000 and a < 50000:
bv = "3"
elif a >= 10000 and a < 20000:
bv = "4"
elif a > 5000 and a < 10000:
bv = "5"

return bv

但是当我调用这个函数时,我得到了这个错误:

UnboundLocalError: local variable 'bv' referenced before assignment

我不明白为什么。我是python的初学者

你需要使用合适的缩进:

def bv(a):
if a >= 100000:
bv = "1"
elif a >= 50000 and a < 100000:
bv = "2"
elif a >= 20000 and a < 50000:
bv = "3"
elif a >= 10000 and a < 20000:
bv = "4"
elif a > 5000 and a < 10000:
bv = "5"
else:
bv = ""

return bv

你写它的方式把return bv放在函数之外,当然没有变量bv存在于函数之外!

也没有定义rec!

如果缩进不是问题,那么所有情况的值都不是true,您可能需要添加一个默认情况。我将它添加到代码片段中。