Как исправить неправильный оператор return для последней тестовой переменной?

#python

#python

Вопрос:

Напишите функцию с именем venue(), которая принимает два параметра. Ваша функция должна прочитать значение в параметре string. Если строка == «party» и число < 10, функция должна вернуть «Have it at home». Если строка == «вечеринка» и число > = 10, функция должна вернуть «Лучше арендовать место для проведения мероприятия». Любое другое значение должно возвращать «нанять планировщика событий».

 def venue(s, n):
    if s == "party" and n < 10:
        return "Have it at home"
    elif s == "party" and n >= 10:
        return "Better rent an event place"
    else:
        return "Hire an event planner"

a = venue("party", 9)
b = venue("party", 20)
c = venue("party", 100)
  

Я ожидаю, что последним возвращаемым значением будет «нанять планировщика мероприятий», но я получаю «лучше арендовать место для проведения мероприятий»

Комментарии:

1. Но, party, 100 — это party и n > = 10. верно?

2. Как насчет: c = venue("wedding", 100) ?

3. ДА… ваш код правильный. Ваши тестовые данные и / или ваши предположения о правильном поведении — это то, что неправильно.

Ответ №1:

Поскольку c соответствует второму условию, оно возвращает "Better rent an event place"

Чтобы исправить это, вы можете изменить строковое значение c на что-то другое, например "event"

Ответ №2:

Поскольку вы написали в своем цикле, что

 if s == "party" and n < 10:

    return "Have it at home"

elif s == "party" and n >= 10:

    return "Better rent an event place"

else:

    return "Hire an event planner"
  

это означает, что, если есть какое-либо значение n, которое меньше или равно 10, возвращаемым значением будет «Лучше арендовать место для проведения мероприятия». Однако, если значение n отличается от любого значения, меньшего, равного или больше 10, возвращением будет «Нанять планировщика событий», что невозможно в обычных случаях.

Если возможно, то попробуйте что-нибудь изменить в переменных или символах в цикле.

Надеюсь, это поможет.