【发布时间】:2022-01-23 05:59:50
【问题描述】:
此 Python 程序将确定输入数组是否为山数组。我在我制作的其他程序中找到了关于 stackoverflow 的相同错误的答案,但不是这个。当输入有效的山数组时,它似乎没有问题,但是当我更改测试数组的前半部分使其无效时,我遇到了问题。而不是它返回 False,这是目标,我收到了这个错误:UnboundLocalError: local variable 'y' referenced before assignment。另外,z 变量也出现了同样的错误,所以我添加了else 语句并修复了它。无法弄清楚为什么它也没有修复 y 变量。这是我的代码:
def validMountainArray(arr):
maxElem = max(arr)
maxIndex = arr.index(maxElem)
if len(arr) < 3:
return False
else:
beginning = arr[:maxIndex]
end = arr[maxIndex + 1:]
for i in range(1, len(beginning) - 1):
if beginning[i + 1] > beginning[i]:
y = True
else:
y = False
for i in range(1, len(end) - 1):
if end[i + 1] < end[i]:
z = True
else:
z = False
if y == True and z == True:
return True
else:
return False
【问题讨论】:
-
哪里出错了?
-
如果您的 for 循环迭代零次,则永远不会创建
y。