Vitaly Chekunov

Не проходит ни один тест и линтер. В чем может быть проблема?

# BEGIN (write your solution here)
from math import sqrt


def get_square_roots(n):
    if n == 0:
        return [0]
    elif n < 0:
        return[]
    return [sqrt(n) * -1, sqrt(n)]
# END


# BEGIN (write your solution here)
def get_range(n):
    l = [0]
    i = 0
    while i != n - 1:
        i += 1
        l.append(i)
    return l
# END

10 0

Вы бы хоть сообщения от линтера прикрепили!

Вопрос от меня: почему у вас табами отступы сделаны? Настройте редактор, чтобы он вставлял 4 пробела вместо символа табуляции, как в Python принято!

0

Aleksei Pirogov, Можете подсказать как настроить? До этого курса все задания так делал, ничего не менял. Все проходило.

0

То есть это па сайте так себя редактор ведёт? С этим будем разбираться. А линтер-то что пишет?

0

Aleksei Pirogov, Тесты

Линтер.

/usr/src/app/src/solution.py:7:1: W191 indentation contains tabs
if n == 0:
^
/usr/src/app/src/solution.py:7:2: E117 over-indented
if n == 0:
^
/usr/src/app/src/solution.py:8:1: W191 indentation contains tabs
return [0]
^
/usr/src/app/src/solution.py:8:3: E117 over-indented
return [0]
^
/usr/src/app/src/solution.py:9:1: W191 indentation contains tabs
elif n < 0:
^
/usr/src/app/src/solution.py:10:1: W191 indentation contains tabs
return[]
^
/usr/src/app/src/solution.py:10:3: E117 over-indented
return[]
^
/usr/src/app/src/solution.py:11:1: W191 indentation contains tabs
return [sqrt(n) * -1, sqrt(n)]
^
/usr/src/app/src/solution.py:17:1: W191 indentation contains tabs
l = [0]
^
/usr/src/app/src/solution.py:17:2: E741 ambiguous variable name 'l'
l = [0]
^
/usr/src/app/src/solution.py:17:2: E117 over-indented
l = [0]
^
/usr/src/app/src/solution.py:18:1: W191 indentation contains tabs
i = 0
^
/usr/src/app/src/solution.py:19:1: W191 indentation contains tabs
while i != n - 1:
^
/usr/src/app/src/solution.py:20:1: W191 indentation contains tabs
i += 1
^
/usr/src/app/src/solution.py:20:3: E117 over-indented
i += 1
^
/usr/src/app/src/solution.py:21:1: W191 indentation contains tabs
l.append(i)
^
/usr/src/app/src/solution.py:22:1: W191 indentation contains tabs
return l
^

0

Aleksei Pirogov, убрал табы и сделал пробелы. Теперь линтер ругается только на это.

/usr/src/app/src/solution.py:18:5: E741 ambiguous variable name 'l'
l = [0]
^

Тесты по прежнему не прохожу. Почему нельзя отступы делать табами? Один таб = четыре пробела. В чем разница?

0

Почему нельзя отступы делать табами? Один таб = четыре пробела. В чем разница?

Вы путаете нажатие клавиши <Tab> и вставку символа табуляции! Если редактор настроен "под Python", то он будет по нажатию <Tab> вставлять четыре пробела. Если не настроен, то будет вставлять один символ табуляции (символ с кодом 08h).

Линтер ругается на использование однобуквенной переменной, имя которой содержит один из символов, которые люди часто путают: например, l путают с I. Рекомендую вообще не использовать однобуквенные имена.

0

Aleksei Pirogov, спасибо, с линтером вопрос решил, все отлично, ошибок нет. Как теперь пройти тест в целом? Вывод тестов.

make: Entering directory '/usr/src/app'
env PYTHONPATH=src pytest src tests

.
Makefile:2: recipe for target 'test' failed

make: *** [test] Killed

make: Leaving directory '/usr/src/app'

В REPL все тесты проходит.

0

Что значит "В REPL все тесты проходит."? Чьи тесты, ваши? Нужно, чтобы код наши тесты проходил :)

У вас функция get_range включает само переданное число в результирующий список. Это противоречит условиям задачи.

0

Aleksei Pirogov, не включает, я проверял.

0

Да, я проверил. Не влючает. Зато get_range зацикливается, если передать в качестве аргумента ноль или отрицательное число. Это неправильное поведение. А всему виной условие у while: ноль или отрицательное число никогда не дадут True в таком условии! Когда вы используете цикл со счётчиком, стоит всегда проверять неравенство (i < n вместо i != n - 1).

0

Похожие вопросы

Арслан Худайкулиев 18 января 2020 →

Ребята, скажите, пожалуйста, как лучше данную функцию реализовать при помощи рекурсии? Данная функция должн...

Sergey Toyliev 17 января 2020 →

Мне кажется не хватает еще одного теста: assert solution.get_square_roots(7) == []

Maxim Bazadji 26 ноября 2019 →

https://ru.hexlet.io/code_reviews/175828 Дорогие добрые менторы, нужен хелп, в Репле работает, а тут не оче...

Борис Кошелев 04 ноября 2019 →

Ранее мы узнали что все рассмотренные нами ранее типы и структуры данных — строки, числа, булевы значения, ...

Евгений Ларин 06 октября 2019 →

Не понимаю почему не работает код, сравнил с решением учителя и мне кажется это почти то же самое ``` impo...

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →