Найти - Пользователи
Полная версия: Задания с Codecademy
Начало » Python для новичков » Задания с Codecademy
1
Pashka
Здравствуйте.
Начал изучать Python, и наткнулся на сайтик codecademy, на котором после изучения теории предлагается решить практическую задачку. Все шло хорошо, но вот застрял на одной. Подскжите, где я туплю?
Задание:
1. First, def a function, shut_down, that takes one argument s. Don't forget the parentheses or the colon!
2. Then, if the shut_down function receives an s equal to “yes”, it should return “Shutting down”
3. Alternatively, elif s is equal to “no”, then the function should return “Shutdown aborted”.
4.Finally, if shut_down gets anything other than those inputs, the function should return “Sorry”

Мое решение:
    def shut_down(s):                   #создаем функцию  shut_down с переменной s
    return s
    if s=="yes":                           #если переменная s равна yes, то
        return "Shutting down"        # возвращается значение "Shutting down"
    elif s=="no":                          #если переменная s равна no, то
        return "Shutdown aborted"  # возвращается значение "Shutdown aborted"
    else:                                     # если ни одно условие не выполняется
        return "Sorry"                    #возвращается значение "Sorry"
Выдает следующую ошибку:
Oops, try again. Your function failed on the message yes. It returned ‘yes’ when it should have returned ‘Shutting down’

Где моя ошибка, помогите
botinag
def shut_down(s):
    if s == 'yes':
        return 'Shutting down'
    elif s == 'no':
        return 'Shutdown aborted'
    else:
        return 'Sorry'
Pashka
botinag
спасибо. заработало
можете пояснить, почему return s было лишним?
botinag
def shut_down(s):                   #создаем функцию  shut_down с переменной s
   return s
...
т.к. ваша функция первой же строкой возвращает что-то (в данном случае аргумент), все последующее за строкой return s просто игнорируется.
terabayt
а еще можно else убрать
def shut_down(s):                   #создаем функцию  shut_down с переменной s
    if s=="yes":                           #если переменная s равна yes, то
        return "Shutting down"        # возвращается значение "Shutting down"
    elif s=="no":                          #если переменная s равна no, то
        return "Shutdown aborted"  # возвращается значение "Shutdown aborted"
    return "Sorry"                    # если ни одно условие не выполняется возвращается значение "Sorry"
Alen
А еще можно if/else конструкцию убрать.
def shutdow(key):
    d = {'yes': 'Shutting down', 'no': 'Shutdown aborted'}
    return d.get(key) or 'Sorry'
terabayt
а ще можно и доп словарь не использовать
def shut_down(s):
    return "Shutting down" * (s == 'yes') + "Shutdown aborted" * (s == 'no') or "Sory"
Pashka

botinag
Спасибо за пояснение

terabayt
а еще можно else убрать
Alen
А еще можно if/else конструкцию убрать.
terabayt
а ще можно и доп словарь не использовать

Спасибо за вашу помощь. Но я так еще не умею сокращать код, но в копилочку уже положил
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB