Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/76: Рейтинг темы: голосов - 76, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 09.01.2020
Сообщений: 5

Проверка пароля

08.01.2021, 22:39. Показов 16179. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня возникла проблема в коде

Напишите программу, которая будет требовать у пользователя ввода нового пароля до тех пор, пока не будет введен корректный, либо пока пользователь не прекратит программу с клавиатуры, то есть нажмет комбинацию клавиш Ctrl-Break или аналогичную ей.
Критерии правильности пароля аналогичны критериям из задачи "Пароли часть 2" из классной работы.
Если пользовател вводит неправильный пароль, то необходимо вывести имя класса того типа исключения, который будет "выброшен" вашей программой. После этого ввод продолжается.
Если пользователь прерывает работу программы "волшебной" комбинацией клавиш, то надо вывести фразу Bye-Bye и сразу же завершить работу программы.
Если пользователь вводит текст Ctrl+Break, то программа должна искусственно сымитировать нажатие "волшебной" комбинации клавиш.
Как только будет введен правильный пароль следует вывести ok и тотчас же прекратить выполнение программы.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
class PasswordError(Exception):
    pass
 
 
class LengthError(PasswordError):
    pass
 
 
class LetterError(PasswordError):
    pass
 
 
class DigitError(PasswordError):
    pass
 
 
class SequenceError(PasswordError):
    pass
 
 
st = 0
 
 
def test1(q):
    if len(q) > 8:
        return True
    else:
        return False
 
 
def test2(w):
    if w.upper() == w or w.lower() == w:
        return False
    else:
        return True
 
 
def test3(e):
    w = False
    for i in "1234567890":
        if i in e:
            w = True
    return w
 
 
def test4(r):
    qwe = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm', 'йцукенгшщзхъ', 'фывапролджэё', 'ячсмитьбю']
    for i in range(len(r) - 2):
        if any([r[i:i + 3].lower() in elem for elem in qwe]):
            return False
    return True
 
 
def check_password(password):
    global st
    if not test1(password):
        raise LengthError
    if not test2(password):
        raise LetterError
    if not test3(password):
        raise DigitError
    if not test4(password):
        raise SequenceError
    st = 1
    return 'ok'
 
 
while st == 0:
    password = input()
    try:
        print(check_password(password))
    except KeyboardInterrupt:
        if password == 'Ctrl+Break':
            print('Bye-Bye')
            break
    except Exception as e:
        print(e.__class__.__name__)
Ввод
12345
amsndbashgdwgehd
qweasdzxc1Z
U1S6OTeEпьdъТ3

Ожидаемый результат
LengthError
LetterError
SequenceError
ok

Вывод
Решение не имитирует нажатие Ctrl+Break
Makefile:5: recipe for target 'run' failed

не знаю как исправить эту ошибку
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2021, 22:39
Ответы с готовыми решениями:

Проверка пароля
Здравствуйте, не могу разобраться в чём ошибка моего кода, благодарен за Вашу помощь. Задача: Ввести с клавиатуры пароль (символьную...

Проверка пароля
Задача то легкая, но я не понимаю какая у меня ошибка в коде. Условие - Напишите программу, которая будет требовать у пользователя ввода...

Проверка пароля
pas def pas (password) : """"введите пароль""" password = input if "pas = snow123": print ("успешный вход") else: ...

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
08.01.2021, 22:43
Цитата Сообщение от ktokto Посмотреть сообщение
Если пользователь прерывает работу программы "волшебной" комбинацией клавиш, то надо вывести фразу Bye-Bye и сразу же завершить работу программы.
а у тебя
Цитата Сообщение от ktokto Посмотреть сообщение
except KeyboardInterrupt:
        if password == 'Ctrl+Break':
то есть если он нажал контрол+бреак и пароль не ввел то выхода не происходит

нужно ввод текстом 'Ctrl+Break' вынести в функцию проверки и при таком случае кидать КейбордИнтеррапт
0
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
08.01.2021, 22:49
ktokto,

Не по теме:

это яндекс лицей 2 курс??

0
0 / 0 / 0
Регистрация: 09.01.2020
Сообщений: 5
08.01.2021, 22:52  [ТС]
Не очень понял как кинуть KeyboardInterrupt просто до этого не приходилось с ним сталкиваться

Добавлено через 1 минуту
Ychenyi,
да это второй курс
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
08.01.2021, 22:52
ktokto, а где тогда код своровал?

вот же ты кидаешь другие исключения

Цитата Сообщение от ktokto Посмотреть сообщение
if not test1(password):
        raise LengthError
    if not test2(password):
        raise LetterError
    if not test3(password):
        raise DigitError
    if not test4(password):
        raise SequenceError
правда делаешь это неверно... явно где то я уже это видел
0
0 / 0 / 0
Регистрация: 09.01.2020
Сообщений: 5
08.01.2021, 22:54  [ТС]
Welemir1,
Не воровал этот на уроке делали далее я его дорабатывал
0
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
08.01.2021, 22:55
ktokto,

Не по теме:

оо классно
слушай а вот задания/ темы которые проходили на первом курсе , к ним остался доступ? ну т.е. ты можешь зайти в эту карточку с темами 1 курса где теория, задания?

0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
08.01.2021, 22:56
Цитата Сообщение от ktokto Посмотреть сообщение
Не воровал этот на уроке делали далее я его дорабатывал
и чем кейборд исключение от остальных отличается?
0
08.01.2021, 22:56

Не по теме:

или как заканчиваешь первый курс в LMS закрывают доступ ко всему пройденному на первом курсе?

0
0 / 0 / 0
Регистрация: 09.01.2020
Сообщений: 5
08.01.2021, 23:10  [ТС]
Welemir1,
1 исключение для проверки длины 2 для проверки регистра 3 наличие цифр 4 проверка на последовательность подряд идущих трëх символов
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
08.01.2021, 23:12
Лучший ответ Сообщение было отмечено ktokto как решение

Решение

Цитата Сообщение от ktokto Посмотреть сообщение
1 исключение для проверки длины 2 для проверки регистра 3 наличие цифр 4 проверка на последовательность подряд идущих трëх символов
ты мне зачем это написал? я тебя спросил чем кейборд исключение отлдичается от них? это риторический вопрос. ответ -ничем. А значит кидай его в этой же функции, если пароль равен "контрол+ентер" а в основном коде условие убери
1
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
08.01.2021, 23:21
ktokto,

Не по теме:

чувак ответь на мой вопрос выше пожалуйста

0
0 / 0 / 0
Регистрация: 09.01.2020
Сообщений: 5
08.01.2021, 23:53  [ТС]
Ychenyi,
Сори свет вырубили.Доступ к прошлогодним заданиям есть

Добавлено через 4 минуты
Welemir1,
спасибо за помощь
0
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
09.01.2021, 00:09
ktokto, о,это хорошо даже
Слушай , а скинь свою почту, а то вдруг больше сюда не зайдешь и никак не связаться с тобой будет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2021, 00:09
Помогаю со студенческими работами здесь

Проверка пароля
Как сделать так что бы при введении правильного пароля вылезала надпись, а при неправильном другая надпись?

Проверка пароля
Генерируется пароль и заносится в массив, где будут храниться использованные пароли. Нужно (через функцию) реализовать проверку на...

Проверка пароля
Как известно, когда мы придумываем пароль от аккаунта ВКонтакте, электронной почты или Яндекс.Контеста, к этому паролю часто предъявляются...

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

Проверка логина и пароля
Имеется программа которая добавляет логин и пароль человека в файл под названием out.txt, теперь требуется программу ''Проверка логина и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru