Написать функцию ask_password(login, password, success, failure), которая получает логин и пароль пользователя и проверяет их правильность. Пароль считается правильным, если в нём содержится ровно три английские гласные буквы (гласными считать буквы a,e,i,o,u,y) и ровно такой же набор согласных (все буквы, кроме перечисленных шести), как в логине. Порядок и количество согласных также должно совпадать. Логин и пароль могут передаваться в любом регистре, однако символы, написанные в разных регистрах, считаются одинаковыми. Не будет ошибкой, если вы все введённые символы логина и пароля, сразу приведете к нижнему регистру. Пример: для логина “login” подойдут пароли “aaalgn” и “luagon“. Если пароль правильный, функция должна вызвать коллбэк success, передав ему в качестве аргумента логин. А если пароль был неверный - failure, передав ему в качестве аргументов логин и сообщение об ошибке (в таком порядке). Сообщение об ошибке должно быть одним из трёх вариантов: “Wrong number of vowels”, если в пароле неверное число гласных; “Wrong consonants”, если в пароле набор согласных отличается от набора согласных логина; “Everything is wrong”, если оба условия нарушены. Также напишите функцию main(login, password), которая вызывает написанную функцию ask_password так, чтобы в случае успеха она печатала “Привет, {логин}!”, а в случае ошибки – “Кто-то пытался притвориться пользователем {логин}, но в пароле допустил ошибку: {текст ошибки, большими буквами}.”. Пример 1 Ввод main("anastasia", "nsyatos") Вывод Привет, anastasia! Пример 2 Ввод main("eugene", "aanig") Вывод Кто-то пытался притвориться пользователем eugene, но в пароле допустил ошибку: WRONG CONSONANTS. Пример 3 Ввод ask_password("anastasia", "nsyatos", lambda login: print('super'), lambda login, err: print('bad')) Вывод super Не могу понять как должна работать переменная success и failure, что с ними должно происходить, и что должно с ними происходить в функции main(( Вот мой код:
А что сложного? Просто эти коллбеки обычная обертка, видишь же , лямбда функции передаются в аргументы функции.
я вот тоже эти задачи решал дохуя, но так и не понял для чего мне эти задачи. есть ли способы продвигаться дальше по питону?
ну просто смотри тип у меня же в main должен быть вызов этой функции, а что у меня будет передаваться в параметры success и failure???
Ну ты передаешь в аргумент лишь сигнатуры функций, ты можешь их вызывать да. Допустим x = function и x ты можешь вызывать как x()
Ну , а куда ты хочешь? Изучай любую тебе интересную предметную область, хочешь идти в бэк - изучай как работает рестфул апи, изучай асинхронное программирование. Хочешь идти в дип лернинг , пожалуйста, изучай матан и основные положения нейронок(Что такое активационная функция, узнай про градиентный спуск), узнай как работать с данными(pandas), обучи модельку на какой нибудь либе, тот же keras или tensorflow.
ну смотри у меня же в main вызывается ask_password и какое значение должно попадать в success и failure если они у меня нигде не указываются их значения?
ну значит ты должен указать их по умолчанию, в примере же написано, допустим по умолчанию функция имплементируется на вызов Привет $name. Просто как корированые переменные указываешь The post was merged to previous Feb 24, 2020 Что то вроде function(success = lambda : 'Привет $name'')