python编程错误之UnboundLocalError: local variable 'xxx' referenced before assignment

错误原因:在函数外部已经定义了变量correctnum,在函数内部对该变量进行运算,运行时会遇到了这样的错误:
主要是因为没有让解释器清楚变量是全局变量还是局部变量。

correctnum=0            #答对题目数量
def main():
    for i in range(totalnum):   #   循环遍历问题列表
        ask_Q(i,Q_list[i]['question'])
        for j in range(len(Q_list[i]['choices'])):
            print("{0}.{1}".format(to_letter(j),Q_list[i]['choices'][j]))
        correctnum=correctnum+answer(Q_list[i]['answer'])#错误
    print("共{0}题,答对{1}题,正确率为{2}%".format(totalnum,correctnum,(correctnum/totalnum) * 100))

解决方法:
第一种,当全局变量来看,就是使用global关键字,在函数内部先声明a这个变量是全局变量。

correctnum=0            #答对题目数量

def main():
    global correctnum   #   为了解决这个错误,UnboundLocalError: local variable 'correctnum' referenced before assignment,使用global让解释器清楚变量是全局变量还是局部变量
    for i in range(totalnum):   #   循环遍历问题列表
        ask_Q(i,Q_list[i]['question'])
        for j in range(len(Q_list[i]['choices'])):
            print("{0}.{1}".format(to_letter(j),Q_list[i]['choices'][j]))
        correctnum=correctnum+answer(Q_list[i]['answer'])
    print("共{0}题,答对{1}题,正确率为{2}%".format(totalnum,correctnum,(correctnum/totalnum) * 100))

第二种是当局部变量。就是这个变量只在函数内使用,那么只要在函数内把这个变量定义一下就行了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值