我正在使用python 3.5。
因此,我试图创建一个将x和y作为正浮点输入的函数,然后计算并返回R = x-N * y,其中N是最大的整数,因此x> N * y。
我做了这个功能:
def floatme(x,y):
N = 1
while x <= N * y:
R = x - N * y
N = N+1
return R
但是当我运行函数时,我收到以下错误消息:
UnboundLocalError:分配前已引用局部变量“ R”
我四处搜索,发现当函数中的已分配变量已经在其外部分配时,会发生这种情况。但是我的函数不是这种情况,所以我不明白为什么Python会抱怨?
R
在while
循环内部定义。如果while
循环的条件最初不为真,则其主体将永远不会执行且R
永远不会被定义。尝试这样做是错误的return R
。
要解决该问题,请R
在进入循环之前将其初始化为某种东西。
如果未进入循环是一个错误情况,即调用者不应传递导致问题开始的值,则UnboundLocalError
使用try
/except
结构捕获并引发更适当的异常(例如ValueError
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句