whuiundleLoop引用的局部变量之前的赋值错误

2024-10-01 17:38:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python3.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为什么抱怨?在


Tags: 函数gt功能returndef错误情况整数
1条回答
网友
1楼 · 发布于 2024-10-01 17:38:45

Rwhile循环中定义。如果while循环的条件最初不是真的,那么它的主体永远不会执行,并且R永远不会被定义。那么尝试return R是一个错误。在

要解决此问题,请在进入循环之前将R初始化为某个值。在

如果不进入循环是一个错误条件,即调用者不应该传入导致问题的值,那么使用try/except结构捕获{},并引发一个更合适的异常(例如ValueError)。在

相关问题 更多 >

    热门问题