Как я вспомнил всё за одну программу? (Python)

Привет DTF. Сегодня я хотел бы поделиться с вами результатом первого дня возвращения в IT. Честно, я бы не сказал что это возвращение, а просто попытка вспомнить всё, что я учил в прошлом году, так или иначе мне удалось добиться хоть каких-то достижений...

Те кто читал мой первый пост знают, что я раньше изучал программирование, но к сожалению - я бросил это хобби, и теперь, спустя наверное год, я всё же решил вернутся. Пересмотрев свои старые работы, я поставил себе задачу - самостоятельно написать код без вспомогательных материалов и прочего. Это был скорее тест на память, благодаря которому я должен был узнать: что забыл, что мне нужно подтянуть и так далее.

И вот сегодня, я сел за работу. Цель была проста: воссоздать что-то на подобие входа в систему, то есть человек должен был ввести свой логин, потом пароль, пройти капчу и только тогда он смог бы войти. Так же и были ответвления, к примеру: если логин несколько раз был введён не правильно, то система предлагала создать новый аккаунт с логином и паролем; если же, пароль от существующего аккаунта пару раз был введён не правильно, то система предлагала создать новый пароль.

Спустя час работы вышло это:

#Максимальный пароль import random def key(): users = {'Jake1994': '12345'} print('Добро пожаловать!') login = users.keys() old_pass = users.get('Jake1994') old_steps = 0 running = True while running: old_login = input('Введите логин: ') if old_login not in login: old_steps += 1 print('Неверный логин! Повторите попытку.') if old_steps == 2: yes = ['yes', 'Yes'] no = ['no', 'No'] new_login = input('Хотите создать новый профиль? ') if new_login in yes: new_profile = input('Хорошо, введите новый логин: ') new_password = input('Хорошо, теперь придумайте пароль: ') print('Отлично! Теперь вы ' + new_profile + '.') while running: nlogin = [new_profile] npass = new_password ologin = input('Введите логин: ') if ologin not in nlogin: print('Ошибка! Попробуйте в следуйщий раз!') running = False else: pass_step = 0 while running: b = input('Теперь введите пароль: ') if b != npass: pass_step += 1 print('Неверный пароль! ' + str(pass_step) + ' из 3-х.') if pass_step == 3: print('Превышен лимит попыток, повторите позже.') running = False else: captK() running = False elif new_login in no: continue else: pass_steps = 0 print('Теперь введите пароль: ') while running: a = input( ) if a != old_pass: pass_steps += 1 print('Неверный пароль! ' + str(pass_steps) + ' из 5-х.') if pass_steps == 3: print('Забыли пароль? Вы можете его сменить...') guess = input( ) yes = ['yes', 'Yes'] no = ['no', 'No'] if guess in yes: K_steps = 0 print('Хорошо. Но для начала пройдите капчу: ') while True: z = random.randint(1, 20) print(z) try: guess1 = int(input('Введите число выше: ')) except ValueError: print('Вы ввели не число!') if guess1 == z: print('Вы прошли капчу!') print('Теперь введите новый пароль для ' + old_login) new_passJ = input() users['Jake1994'] = new_passJ old_pass = new_passJ print('Пароль успешно изменен!') print('Введите новый пароль: ') break else: K_steps += 1 print('Попробуйте еще раз!') if K_steps == 5: print('Cлишком много попыток. Повторите в слейдуйщий раз.') break continue else: print('Вы отказались от смены пароля!') continue elif pass_steps == 5: print('Слишком много попыток! Повторите позже!') break else: captJ() #running = False #running = False def captJ(): captha = 0 print('Докажите, что вы не бот.') while True: i = random.randint(1, 20) print(i) try: cap = int(input('Введите число перед вами: ')) if int(cap) == i: print('Вы успешно прошли капчу. :)') print('Приветствую Jake!') break except ValueError: print('Вы ввели не число.') else: if captha < 5: captha += 1 print('Попробуйте еще раз!') elif captha == 5: print('Слишком много попыток! Повторите в следуйщий раз.') break def captK(): captha = 0 print('Докажите, что вы не бот.') while True: i = random.randint(1, 20) print(i) try: cap = int(input('Введите число перед вами: ')) if int(cap) == i: print('Вы успешно прошли капчу. :)') print('Приветствую Kroker!') break except ValueError: print('Вы ввели не число.') else: if captha < 5: captha += 1 print('Попробуйте еще раз!') elif captha == 5: print('Слишком много попыток! Повторите в следуйщий раз.') break #running = False key()

Это не окончательный результат, так как границы работы уже выходили за пределы моих возможностей, поэтому дальше придется воспользоваться ютубом, форумами и статьями в интернете.

Да, тут полно недочётов, ошибок и прочего, но, не забываем что данная работа была настроена на вспоминание всего того, что я забыл за год отсутствия, и тут ещё есть над чем работать. Как по мне, результат вышел не плохим, так как тут затронуто почти всё то, что я учил.

Завтра будет пост про Pixel Art, потому что я решил чередовать хобби, чтоб немного отдыхать от того или иного вида деятельности.

На этом всё.

Спасибо всем тем, кто дочитал пост до конца.

77
11 комментариев

Коротко о коде: if else

1
Ответить

Да-да, так и есть

3
Ответить

я же правильно понял, ты сделал две на 99.9% одинаковые функции чтобы только вывести разные имена пользователей?

1
Ответить

Да

2
Ответить

Откуда первый скрин?

Ответить

Обычная гифка из интернета

3
Ответить

невероятный прогресс!
Имена - отдельный шик
Заслуживает высших похвал

1
Ответить