Форум сайта python.su
изначально был вот такой код
def compare_lists(a, b): if len(a) != len(b): return false for i in range(a): if a(i) != b(i): return False return True print(compare([1,2], [1,2]) print(compare([1,2], [1,3]) print(compare([2,2], [1,2])
def compare_lists(a, b): if len(a) == len(b): return False for i in range(len(a)): if a(i) != b(i): return False print(compare_lists([1,2],[1,2])) print(compare_lists([1,2], [1,3])) print(compare_lists([2,2], [1,2]))
Офлайн
и вот по этой задаче так же нада найти ошибки. если можно с кратким описанием
import math def costable(t): ct = [] for a in t: ct.append(cos(a)) return ct print(costable([0.0, 1.0, 2.0, 3.0]))
Офлайн
Все правильно. Для всех вызовов длины списков равны. Поэтому функция сразу возвращает False.
Т.е. это строка всегда вернет True
# len([1, 2]) == len([2, 3])
Офлайн
По второй еще проще.
return обрывает выполнение функции. И дальше код не выполняет.
В Вашем случае проблемы с отступом и возвращается ct после первой итерации с одним значением…
Офлайн
4kpt_IVа цикл for как то задействован?
Все правильно. Для всех вызовов длины списков равны. Поэтому функция сразу возвращает False.Т.е. это строка всегда вернет True
Офлайн
Нет. return обрывает функцию.
Офлайн
4kpt_IVа не могли бы поправить код?
Нет. return обрывает функцию.
Офлайн
Я не знаю, что этот код должен делать, поэтому поправить его, естественно, не могу…
Офлайн
1. def compare_lists(a, b): if len(a) != len(b): return false for i in range(a): if a(i) != b(i): return False return True print(compare([1,2], [1,2]) print(compare([1,2], [1,3]) print(compare([2,2], [1,2]) 2. import math def costable(t): ct = [] for a in t: ct.append(cos(a)) return ct print(costable=([0.0, 1.0, 2.0, 3.0]))
Офлайн