2014-12-28 6 views
-4
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" 

OK я получил синтаксическая ошибка в строке 2Python квадратов и списки

Вот после того, что мне нужно сделать здесь: Вам дается массив с положительными числами и числом N. Вы должны найти N-й степени элемента в массиве с индексом N. Если N находится вне массива, тогда возвращаем -1. Не забывайте, что первый элемент имеет индекс 0.

+1

'n < len (array)' ---> Не python приятель ... :(Похоже, C –

+1

, так как u сделал бы это в python? – Naeie

+3

OP, похоже, что-то скопировал его и преобразовал '< 'to' < '. – Ffisegydd

ответ

2

if оператор должен прочитать вместо

if n < len(array): 
    return (array)[n]**n 

Снова здесь, Вы можете игнорировать скобки массива и вернуть array[n] ** n.

Индексы массива должны быть в пределах -длина до длины-1. Однако в вашем случае лучше ограничить его положительными индексами. У Python есть очень хороший способ сделать это. Ваш код можно изменить на 0<= n < len(array). Таким образом, последняя функция будет выглядеть как

def index_power(array, n): 
    if 0<= n < len(array): 
     return array[n]**n 
    else: 
     return -1 
+0

Могу ли я спросить у чего-нибудь? – Naeie

+0

@Naeie Если это связано с вопросом, то OK –

+0

Вам задан массив целых чисел. сумма элементов с четными индексами (0, 2, 4 ...), затем умножьте это суммированное число и конечный элемент массива вместе. что первый элемент имеет индекс 0. Для пустого массива результат всегда будет 0 (ноль). – Naeie

1

Что «& lt;» следует заменить на символ <. Это единственная ошибка, которая у вас есть.

Похоже, вы скопировали и вставляли этот код откуда-то; попробуйте понять, что делает ваш код, и имеет ли каждое выражение в нем действительность, прежде чем обращаться за помощью.

1
>>> def homework(list, n): 
...  try: 
...    i = list[n] 
...    return pow(i, n) 
...  except IndexError: 
...    return -1 
... 
>>> homework([1,2,3,4],2) 

Тада?