#python-3.x
#python-3.x
Вопрос:
Хорошо, итак, у меня есть эта функция, которую мне нужно создать, и я думаю, что средство проверки кода каким-то образом испорчено, и я попытался управлять им, но мой код по-прежнему терпит неудачу
def reversecomp(L):
""" assumes L is a list of lists whose elements are ints
Mutates L such that it reverses its elements and also
reverses the order of the int elements in every element of L.
It does not return anything.
"""
if L == []:
return L
elif type(L) == int:
return L
else:
return reversecomp(L[1:]) [reversecomp(L[0])]
def run_code(L):
return reversecomp(L)
print(L)
В вопросе говорится, что вам нужно мутировать L. Ваш код должен работать, когда вы делаете это:
L = [[0, 1, 2], [1, 2, 3], [3, 2, 1], [10, -10, 100]]
reversecomp(L)
print(L)
Тест: run_code([[0, 1, 2], [1, 2, 3]])
Ваш вывод:
[[3, 2, 1], [2, 1, 0]]
Правильный вывод:
[[3, 2, 1], [2, 1, 0]]
Нет
Ответ №1:
В спецификации указано, что «Он ничего не возвращает»; ваша программа возвращает.
Комментарии:
1. Предполагается, что правильный вывод — это то, что он уже выдает в качестве вывода, а затем строка, в которой он ничего не возвращает. Странно.
Ответ №2:
L is a list of lists of ints
Хорошо, так почему вы проверяете type(L) == int
, когда type(L) == list
всегда верно, согласно спецификации?
Mutates L
Вы вообще не мутируете L
; вы возвращаете новый список. Мутировать L
означает делать что-то вроде L[...] = xxx
.
It does not return anything.
Вы вообще не должны использовать return
ключевое reversecomp
слово.