为什么我的代码中出现“UnboundLocalError”?

2024-09-28 17:20:43 发布

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

我已经修改了引文以修正语法错误。现在我收到的错误是:

Traceback (most recent call last):
  File "C:\Users\Alex\Desktop\Programming Concepts\Labs\Chapter 11\Lab 8.py", line 78, in <module>
    main()
  File "C:\Users\Alex\Desktop\Programming Concepts\Labs\Chapter 11\Lab 8.py", line 18, in main
    totalPints = getTotal(pints)
  File "C:\Users\Alex\Desktop\Programming Concepts\Labs\Chapter 11\Lab 8.py", line 42, in getTotal
    totalPints += pints[counter]
  UnboundLocalError: local variable 'totalPints' referenced before assignment

以下是我目前为止的代码:

^{pr2}$

如果有人能把这段代码复制并粘贴到他们的python中并帮助解决问题,我会很高兴的!在


Tags: inpymainlinelabusersfileprogramming
3条回答

嗯,这是一个简单的解决办法。 你只需要在添加变量之前分配变量。在

totalPins = 0

或者

^{pr2}$

在进入循环之前应该做的技巧。在

您需要将所有的更改为引号('")。您还需要检查getPints函数中的缩进:

# The getPints function
def getPints(pints):
counter = 0
while counter < 7:
    numEntered = input(‘Enter pints collected: ‘)
    pints[counter] = int(numEntered)
    counter += 1
return pints

将函数定义后的所有内容再缩进一级,就像您在main函数中所做的那样:

^{pr2}$

“赋值前引用的变量”只意味着你使用的变量还不存在。在您的代码中,问题是这一行:

totalPints += pints[counter]

这是totalPints的第一次出现。请记住“+=”构造完全等同于

^{pr2}$

而这正是python反对的右侧出现的情况。要解决此问题,请使用初始化变量

totalPints = 0

在你进入循环之前。在

相关问题 更多 >