Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/55: Рейтинг темы: голосов - 55, средняя оценка - 4.75
 Аватар для Pasha Biceps
0 / 0 / 0
Регистрация: 23.04.2020
Сообщений: 14

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

18.10.2020, 12:34. Показов 10657. Ответов 3

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

Ввод пользователя:
12345
amsndbashgdwgehd
qweasdzxc1Z
U1S6OTeEпьdъТ3
Вывод программы:
LengthError
LetterError
SequenceError
ok

Моя программа выводит:
LengthError
LetterError
SequenceError

Мой код:


Помогите плиз я глупенький

Добавлено через 38 секунд
Блин код почему-то шакалится

Добавлено через 26 секунд
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
l3 = [
    'qwe', 'wer', 'ert', 'rty', 'tyu', 'yui', 'uio', 'iop',
    'asd', 'sdf', 'dfg', 'fgh', 'ghj', 'hjk', 'jkl',
    'zxc', 'xcv', 'cvb', 'vbn', 'bnm',
    'йцу', 'цук', 'уке', 'кен', 'енг', 'нгш', 'гшщ', 'шщз', 'щзх', 'зхъ',
    'фыв', 'ыва', 'вап', 'апр', 'про', 'рол', 'олд', 'лдж', 'джэ',
    'ячс', 'чсм', 'сми', 'мит', 'ить', 'тьб', 'ьбю', 'жэё',
    'QWE', 'WER', 'ERT', 'RTY', 'TYU', 'YUI', 'UIO', 'IOP',
    'ASD', 'SDF', 'DFG', 'FGH', 'GHJ', 'HJK', 'JKL',
    'ZXC', 'XCV', 'CVB', 'VBN', 'BNM',
    'ЙЦУ', 'ЦУК', 'УКЕ', 'КЕН', 'ЕНГ', 'НГШ', 'ГШЩ', 'ШЩЗ', 'ЩЗХ', 'ЗХЪ',
    'ФЫВ', 'ЫВА', 'ВАП', 'АПР', 'ПРО', 'РОЛ', 'ОЛД', 'ЛДЖ', 'ДЖЭ',
    'ЯЧС', 'ЧСМ', 'СМИ', 'МИТ', 'ИТЬ', 'ТЬБ', 'ЬБЮ', 'ЖЭЁ'
]
l1 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
n = 0
count = 0
count1 = 0
while n == 0:
    password = input()
    password2 = password
    for i in l3:
        if i in password:
            count += 1
    for j in l1:
        if j in password:
            count1 += 1
    if password == 'Ctrl+Break':
        print('Bye-Bye')
    elif len(password) < 9:
        print('LengthError')
    elif count > 0:
        print('SequenceError')
    elif count1 == 0:
        print('DigitError')
    elif password == password2.lower():
        print('LetterError')
    elif password == password2.upper():
        print('LetterError')
    else:
        n += 1
print('ok')
Добавлено через 13 минут
А блин, надо было решать через try, except
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2020, 12:34
Ответы с готовыми решениями:

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

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

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

3
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
18.10.2020, 12:38
Эта задача уже была много раз. Посмотрите по поиску.
0
0 / 0 / 0
Регистрация: 30.09.2024
Сообщений: 2
09.10.2024, 17:47
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
class PasswordError(Exception):
    pass
 
 
class LengthError(PasswordError):
    pass
 
 
class LetterError(PasswordError):
    pass
 
 
class DigitError(PasswordError):
    pass
 
 
class SequenceError(PasswordError):
    pass
 
 
# Клавиатурные последовательности
lang = [
    'йцукенгшщзхъ', 'фывапролджэё', 'ячсмитьбю',
    'qwertyuiop', 'asdfghjkl', 'zxcvbnm'
]
 
 
def check_password(password):
    # Проверка длины пароля
    if len(password) < 9:
        raise LengthError("Password must be at least 9 characters long.")
 
    # Проверка наличия букв верхнего и нижнего регистра
    if not (any(char.islower() for char in password) and any(char.isupper() for char in password)):
        raise LetterError("Password must contain both upper and lower case characters.")
 
    # Проверка наличия хотя бы одной цифры
    if not any(char.isdigit() for char in password):
        raise DigitError("Password must contain at least one digit.")
 
    # Проверка последовательностей из трех подряд идущих символов
    for c in range(len(password) - 2):
        psw_ = password[c:c + 3].lower()
        for i in lang:
            if psw_ in i:
                raise SequenceError("Password contains a sequence of three consecutive characters.")
 
    return 'ok'
 
 
while True:
    try:
        user_input = input()
        if user_input == "Ctrl+Break":
            print("Bye-Bye")
            break  # Завершение программы при "Ctrl+Break"
        result = check_password(user_input)
        print(result)  # Если пароль корректный, выводим 'ok'
        break  # Завершение программы при успешной проверке
    except PasswordError as e:
        print(e.__class__.__name__)  # Вывод имени ошибки
0
 Аватар для OlegChe
73 / 55 / 25
Регистрация: 12.07.2014
Сообщений: 216
12.10.2024, 11:15
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
l3 = [
    'qwe', 'wer', 'ert', 'rty', 'tyu', 'yui', 'uio', 'iop',
    'asd', 'sdf', 'dfg', 'fgh', 'ghj', 'hjk', 'jkl',
    'zxc', 'xcv', 'cvb', 'vbn', 'bnm',
    'йцу', 'цук', 'уке', 'кен', 'енг', 'нгш', 'гшщ', 'шщз', 'щзх', 'зхъ',
    'фыв', 'ыва', 'вап', 'апр', 'про', 'рол', 'олд', 'лдж', 'джэ',
    'ячс', 'чсм', 'сми', 'мит', 'ить', 'тьб', 'ьбю', 'жэё',
    'QWE', 'WER', 'ERT', 'RTY', 'TYU', 'YUI', 'UIO', 'IOP',
    'ASD', 'SDF', 'DFG', 'FGH', 'GHJ', 'HJK', 'JKL',
    'ZXC', 'XCV', 'CVB', 'VBN', 'BNM',
    'ЙЦУ', 'ЦУК', 'УКЕ', 'КЕН', 'ЕНГ', 'НГШ', 'ГШЩ', 'ШЩЗ', 'ЩЗХ', 'ЗХЪ',
    'ФЫВ', 'ЫВА', 'ВАП', 'АПР', 'ПРО', 'РОЛ', 'ОЛД', 'ЛДЖ', 'ДЖЭ',
    'ЯЧС', 'ЧСМ', 'СМИ', 'МИТ', 'ИТЬ', 'ТЬБ', 'ЬБЮ', 'ЖЭЁ'
]
l1 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
 
while True:
    password = input("Введите пароль: ")
    
    if password == 'Ctrl+Break':
        print('Bye-Bye')
        break
    
    count_sequences = sum(1 for seq in l3 if seq in password)
    count_digits = sum(1 for digit in l1 if digit in password)
 
    if len(password) < 9:
        print('LengthError')
    elif count_sequences > 0:
        print('SequenceError')
    elif count_digits == 0:
        print('DigitError')
    elif password.islower() or password.isupper():
        print('LetterError')
    else:
        print('ok')
        break
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2024, 11:15
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
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