В чём проблема?
passw = input("Введите пароль:") def test_passw(p): def deco(f) if p == "10": return f else: return lambda: "Доступ закрыт" return deco @test_passw(passw) def func(): return "Доступ открыт" print(func())
passw = input("Введите пароль:") def test_passw(p): def deco(f) if p == "10": return f else: return lambda: "Доступ закрыт" return deco @test_passw(passw) def func(): return "Доступ открыт" print(func())
4kpt_VСпасибо, в этом и была проблема
Как минимум покажите ошибку.Как максимум у Вас неверные отступы. 8 строка
artyrpodoprigoraЕще одну проблему не заметили. В 3-й строке после def deco(f) должно быть двоеточие.
Спасибо, в этом и была проблема
Не заметил
old_montyа можно чуть развернутее ответ?)
troppiiУ вас переменная с ссылается на тип int (c = int(input(…)), а проверка в if и elif делается для типа str (if c == “1”, elif c == “2”). Приведите все к какому-либо одному типу.
troppiiНу смотрите, вот ваш код:
а можно чуть развернутее ответ?
c = int(input("Если Зима, ставь 1, если Лето, то ставь 2")) # в результате c указывает на целое число (тип int) 1 или 2 if c == "1": # проверяет, что с - это строка "1" (тип str) ... elif c == "2": # проверяет, что c - это строка "2" (тип str) ...
>>> # Пробуем играться с типами int и str в интерактивном режиме интерпретатора Python >>> 1+2 >>> 3 >>> "1" +"2" >>> '12' >>> int("2") 2 >>> str(2) '2' >>>