Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/154: Рейтинг темы: голосов - 154, средняя оценка - 4.88
11 / 60 / 21
Регистрация: 12.03.2017
Сообщений: 514

Функция password_level(), которая определяет надежность пароля

12.12.2017, 16:01. Показов 33245. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выбор надежного пароля - непростая задача. Напишите функцию password_level(), которая принимает на вход строку и определяет, является ли она надежным паролем.

1. Пароль должен содержать 6 или более символов - иначе функция должна печатать "Недопустимый пароль".

2. Если в пароле содержатся только цифры или только буквы одного регистра, функция должна печатать "Ненадежный пароль".

3. Если в пароле содержатся буквы разных регистров или буквы одного регистра и цифры, функция должна печатать "Слабый пароль".

4. Если в пароле содержатся и цифры, и буквы разных регистров, функция должна печатать "Надежный пароль".

Пример 1
Ввод
qwerty
Вывод
Ненадежный пароль

Пример 2
Ввод
123Qwerty
Вывод
Надежный пароль

Пример 3
Ввод
Qwerty
Вывод
Слабый пароль
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2017, 16:01
Ответы с готовыми решениями:

Функция, которая: определяет количество слов в строке; определяет длину самого длинного слова строки
Строка содержит слова, отделенные друг от друга промежутками (в любом количестве). Написать функцию, которая: а) определяет количество...

Функция,которая определяет, встречается ли заданная буква, которая передается в функцию как параметр
Написать функцию, которая определяет, встречается ли заданная буква, которая передается в функцию как параметр, во введенной строке....

Проверка пароля на надежность
#include <iostream> using namespace std; int main() { int b = 0, c = 0, B = 0, C = 0; char str; cin>>str; ...

31
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.03.2019, 13:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Paxerio Посмотреть сообщение
print(password_level("qwerty"))
ну вот поэтому. Функция же ничего не возвращает, а печатает.

Делайте или просто
password_level("qwerty")
или вместо print внутри функции, делайте return и тогда оставляйте, как есть.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
25.03.2019, 14:02
Paxerio, посмотри, как вызываются функции.
https://docs.python.org/3/tuto... -functions
0
-5 / 10 / 0
Регистрация: 14.03.2019
Сообщений: 52
25.03.2019, 14:10
Спасибо большое я понял))))))))))

Добавлено через 3 минуты
Python
1
2
3
print(password_level("qwerty12345"))
print(password_level("12345фывапр"))
print(password_level("12345ASDS"))
Ожидаемый результат
Слабый пароль
Слабый пароль
Слабый пароль
Вывод
Надежный пароль
Надежный пароль
Надежный пароль
0
0 / 0 / 0
Регистрация: 20.04.2019
Сообщений: 1
20.04.2019, 16:19
напиши в функции вместо print -> return
0
0 / 0 / 0
Регистрация: 02.05.2019
Сообщений: 13
15.05.2019, 14:49
Цитата Сообщение от Paxerio Посмотреть сообщение
print(password_level("qwerty"))
Вместо print надо return
0
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
20.01.2020, 19:31
все print() на return замени!!!!!!
0
21.01.2020, 08:46

Не по теме:

geargoose, это на случай, если два предыдущих поста не дошли?

0
0 / 0 / 0
Регистрация: 01.06.2019
Сообщений: 7
16.01.2021, 19:52
Python
1
2
3
4
5
6
7
8
9
def password_level(x):
    if len(x) < 6:
        print('Недопустимый пароль')
    elif x.isdigit() or (x.isalpha() and x.islower()):
        print('Ненадежный пароль')
    elif (x.isdigit() and x.lower()) or (x.isalpha() and x.lower()):
        print('Слабый пароль')
    else:
        print('Надежный пароль')
Проблема вашего кода в том, что функция печатает результат, а по условию должна возвращать.
Эта проблема решается легко, просто стоит ЗАМЕНИТЬ print на return
Python
1
2
3
4
5
6
7
8
9
10
11
12
def password_level(x):
    if len(x) < 6:
        return ('Недопустимый пароль')
    elif x.isdigit() or (x.isalpha() and x.islower()):
        return ('Ненадежный пароль')
    elif (x.isdigit() and x.lower()) or (x.isalpha() and x.lower()):
        return ('Слабый пароль')
    else:
        return ('Надежный пароль')
 
 
print(password_level("123Qwerty"))

Из-за этого у некоторых и печатался сначала ответ, а потом "какой-то" None
0
0 / 0 / 0
Регистрация: 22.06.2021
Сообщений: 1
22.06.2021, 14:49
В общем у вас у всех написана полная хрень. По тестам заходит только вот этот вариант.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import string
 
def password_level(password):
    if len(password) < 6:
        print('Недопустимый пароль')
 
    elif password.isdigit() or (password.isalpha() and password.islower()):
        print('Ненадежный пароль')
 
    elif password.isalpha() and password.lower():
        print('Слабый пароль')
    elif any([letter in password for letter in string.ascii_lowercase]) and any(map(str.isdigit, password)):
        print('Слабый пароль')
    elif any([letter in password for letter in string.ascii_uppercase]) and any(map(str.isdigit, password)):
        print('Слабый пароль')
    
    else:
        print('Надежный пароль')
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.06.2021, 14:54
rimmarque, если судить о хреновости кода по проверяющей системе - может быть. А вот по честному - полная хрень как раз у тебя.
4
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 21:11
Python
1
2
3
4
5
6
7
8
def f(raw_password):
    if len(raw_password) < 6:
        return 'Недопустимый пароль'
    if re.match(r'^(\d+|[a-z]+|[A-Z]+)$', raw_password):
        return 'Ненадежный пароль'
    if re.match(r'^([a-zA-Z]+|[a-z\d]+|[A-Z\d]+)$', raw_password):
        return 'Слабый пароль'
    return 'Надежный пароль'
Добавлено через 8 минут
Можно ещё так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def f(raw_password):
    if len(raw_password) < 6:
        return 'Недопустимый пароль'
    is_dig, is_lower, is_upper = False, False, False
    for i in raw_password:
        if i.isdigit():
            is_dig = True
        elif i.islower():
            is_lower = True
        elif i.isupper():
            is_upper = True
    if is_dig and not is_lower and not is_upper:
        return 'Ненадежный пароль'
    # ...
0
1 / 1 / 0
Регистрация: 09.12.2023
Сообщений: 16
30.01.2025, 20:03
Добавлено через 14 минут
Немного доработал код Рыжего Лиса. Рыжий Лис, спасибо большое!!! Вот код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import re
 
 
def password_level(raw_password):
    if len(raw_password) < 6:
        return 'Недопустимый пароль'
    if re.match(r'^(\d+|[a-z]+|[A-Z]+)$', raw_password):
        return 'Ненадежный пароль'
    if re.match(r'^(\d+|[а-я]+|[А-я]+)$', raw_password):
        return 'Ненадежный пароль'
    if re.match(r'^([a-zA-Z]+|[a-z\d]+|[A-Z\d]+)$', raw_password):
        return 'Слабый пароль'
    if re.match(r'^([а-яА-Я]+|[а-я\d]+|[А-Я\d]+)$', raw_password):
        return 'Слабый пароль'
    return 'Надежный пароль'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2025, 20:03

Проверка пароля на надежность
Проверка пароля на надежность. В данном упражнении вам необходимо написать функцию, проверяющую введенный пароль на надежность. Определим...

Проверка пароля на надежность
Подскажите, пишу на js функцию для проверки пароля на надежность, однако на странице ничего не работает. В чем может быть проблемма? ...

Функция, которая определяет количество цифр в числе
Разработать функцию на C++, которая определяет количество цифр в целом, натуральном числе введённом с клавиатуры. Введённые числа не...

Функция, которая определяет русские буквы в строке
Здравствуйте!!! Ребята, подскажите, по такому вопросу фукция isalpha определяет латинские буквы в строке , а какая функция определяет...

Функция, которая определяет и выводит на экран слова
Задано несколько (N&gt; 3) предложений. Написать функцию, которая определяет и выводит на экран слова, которые разделены запятой


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru