Python 这里return-1是什么意思?

Python 这里return-1是什么意思?,python,return,Python,Return,当我循环回答一些面试问题时,我得到了一些代码,我对return-1在做什么感到困惑,我猜这些代码实际上是如何完成任务的 #数组中的第一个非重复整数 def第一次非重复(arr,n): 对于范围(n)中的i: j=0 而(j

当我循环回答一些面试问题时,我得到了一些代码,我对
return-1
在做什么感到困惑,我猜这些代码实际上是如何完成任务的

#数组中的第一个非重复整数
def第一次非重复(arr,n):
对于范围(n)中的i:
j=0
而(j
当数组中的每个元素都在重复时,
返回-1

例:


通常,当给定输入没有解决方案时,出于指示目的,返回-1作为答案


这里,当数组中的所有整数至少出现两次时,函数firstNonRepeating将返回-1。

它看起来像是在所有整数重复时用作for,例如:

>>> a = [9, 4, 9, 4]
>>> firstNonRepeating(a, len(a))
-1
然而,这是一个可怕的哨兵价值选择,因为它也是一个完美的法律价值:

>>> arr = [-1]
>>> print(firstNonRepeating(arr, len(arr)))
-1
最好提出一个例外,例如:

raise ValueError('no non-repeating integer found')

也许作者考虑的是无符号的整数,这在Python中是不存在的(至少不是本机类型)。还有一些其他的奇怪之处让我觉得它是由比Python更熟悉C的人编写的(比如,传入数组的长度,用
while
而不是
for…range
,将a/称为数组,在
if
测试中用括号括起来).

这意味着数组中的所有项都会多次出现。为什么不重新运行第一个非重复intg的值?@0004您的意思是什么?
raise ValueError('no non-repeating integer found')