Условные и управляющие потоки в Python: функция не должна принимать аргументов

Я делаю Python на CodeCademy.com еще раз, пытаясь заставить функцию the_flying_circus() вернуть true. Вот инструкции:

Напишите оператор if в the_flying_circus. Он должен включать: - операторы if, elif и else - хотя бы одно из и, или, или нет - компаратор - наконец, the_flying_circus() должен возвращать True при оценке.

def the_flying_circus(evaluated):
    if evaluated == 1: 
        return True 

    elif evaluated == 0: 
        return not True or True

    else:
        return -1

print the_flying_circus(1)

После запуска этого кода я получаю вывод "Нет" и получаю следующее сообщение об ошибке от CodeCademy:

Ой, попробуйте еще раз. the_flying_circus не должен принимать никаких аргументов.

Я не понимаю, что они имеют в виду. О каких аргументах они говорят, и как я могу убедиться, что они не приводят никаких аргументов, не мешая программе?

3 ответа

Ваша функция принимает аргумент:

def the_flying_circus(evaluated):

но в упражнении вас попросят создать функцию без параметров:

the_flying_circus() должен вернуться True при оценке.

В этом предложении при оценке просто означает, что выражение the_flying_circus() выполнен.

Ваша функция просто должна соответствовать требованиям; используйте операторы и операторы и убедитесь, что функция всегда возвращает True,

Следующее должно пройти:

def the_flying_circus():
    evaluated = 1

    if evaluated == 1: 
        return True 

    elif evaluated == 0: 
        return not True or True

    else:
        return not False

print the_flying_circus()

Как отметил Мартжин Питерс, отчасти проблема заключается в том, что ваша функция принимает аргумент, а вам явно сказано, что она не должна.

Есть еще одна проблема, которая заключается в том, что ваша функция не обязательно вернет True, Что-то вроде:

def the_flying_circus():
    if 1 > 0 and not 0:
        pass
    elif 2 > 3:
        pass
    else:
        pass
    return True

это минимальный (и совершенно бесполезный) рабочий пример.

def the_flying_circus():
    if 2 ** 3 == 8 and 5 + 1 == 6 :
      return True  # Start coding here!

    elif the_flying_circus(2):
      return not True

    print the_flying_circus()
Другие вопросы по тегам