def index_power(array, n):
if n < len(array):
return (array)[n]**n
else:
return -1
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert index_power([1, 2, 3, 4], 2) == 9, "Square"
assert index_power([1, 3, 10, 100], 3) == 1000000, "Cube"
assert index_power([0, 1], 0) == 1, "Zero power"
assert index_power([1, 2], 3) == -1, "IndexError"
好的,我在第2行遇到了语法错误
以下是我需要做的以下内容: 给你一个带正数和数字N的数组。你应该在数组中找到索引为N的元素的N次幂。如果N在数组之外,则返回-1。别忘了第一个元素的索引是0。
答案 0 :(得分:2)
if
语句应该改为
if n < len(array):
return (array)[n]**n
再次在这里,您可以忽略数组周围的括号并返回array[n] ** n
。
数组的索引必须在 -length到length-1 之内。但是在您的情况下,最好将其限制为正指数。 Python有一个很好的方法来做到这一点。您的说法可以更改为0<= n < len(array)
。所以最后的函数看起来像
def index_power(array, n):
if 0<= n < len(array):
return array[n]**n
else:
return -1
答案 1 :(得分:1)
那&#34;&amp; LT;&#34;应该替换为&lt;符号。这是你唯一的错误。
看起来你从某个地方复制并粘贴了这段代码;在请求帮助之前,请尝试了解您的代码正在做什么以及其中的每个表达式是否有效。
答案 2 :(得分:1)
>>> def homework(list, n):
... try:
... i = list[n]
... return pow(i, n)
... except IndexError:
... return -1
...
>>> homework([1,2,3,4],2)
多田?