UnboundLocalError:在assignmen之前引用了局部变量“med”

2024-09-28 01:33:35 发布

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

我有这个功能:

def compute():
    if txtot.get() == "":
        ot = 0
    elif txtmed.get() == "":
        med = 0
    else:
        bon = 0

    total = ot+med+bon
    print ("",total)

当被叫来的时候:

^{pr2}$

你知道怎么修理吗?在


Tags: 功能getifdefmedotelsetotal
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:35

由于您的if-elif-else语句的一个分支将被执行,因此在该分支的三个中未赋值的变量将始终在if语句之后不存在。在

在这种情况下,您的输出总是0,但通常您希望变量在if语句之前初始化为某个值,并根据条件递增。在

def compute():
    ot = med = bon = 0

    if txtot.get() == "":
        ot += 1
    elif txtmed.get() == "":
        med += 2
    else:
        bon += 3

    total = ot + med + bon
    print (total)

相关问题 更多 >

    热门问题