Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите пожалуйста с задачами по python

4. Напишите функцию, принимающую в качестве аргумента натуральное число и возвращающую список всех делителей данного числа.
5. Напишите функцию, которая принимает в качестве аргумента строковое значение пароля и возвращает значение True, если пароль является надежным и False в противном случае.
Пароль является надежным если:
• его длина не менее 88 символов;
• он содержит как минимум одну заглавную букву (верхний регистр);
• он содержит как минимум одну строчную букву (нижний регистр);
• он содержит хотя бы одну цифру.

По дате
По рейтингу
Аватар пользователя
Новичок

Ксюша, привет)


12345678910111213141516171819202122232425262728293031323334
 import string 
 
def find_divisors(n): 
    divisors = [] 
    for i in range(1, n + 1): 
        if n % i == 0: 
            divisors.append(i) 
    return divisors 
 
def is_strong_password(password): 
    if len(password) < 22: 
        return False, 'Пароль ненадежный: слишком короткий, нужно минимум 22 символов.' 
    if not any(c in string.ascii_uppercase for c in password): 
        return False, 'Пароль ненадежный: должен содержать как минимум одну заглавную букву.' 
    if not any(c in string.ascii_lowercase for c in password): 
        return False, 'Пароль ненадежный: должен содержать как минимум одну строчную букву.' 
    if not any(c.isdigit() for c in password): 
        return False, 'Пароль ненадежный: должен содержать хотя бы одну цифру.' 
 
    return True, 'Пароль надежный.' 
 
 
number = 36 
divisors = find_divisors(number) 
print(f"Делители числа {number}: {divisors}") 
 
password = "MyVeryLongPasswordWithDigitsIOUWEgvuwjeklJVIWUEPwiueilwvkjkb2" 
result, message = is_strong_password(password) 
print(f"Проверка пароля '{password}': {result} - {message}") 
 
short_password = "Short1" 
result_short, message_short = is_strong_password(short_password) 
print(f"Проверка пароля '{short_password}': {result_short} - {message_short}") 
 

Только измени параметр 22. Для теста 88 было не удобно)

Аватар пользователя
Просветленный
123456789
 def devisors(x: int): 
    return [d for d in range(1, x // 2  + 1) if x % d == 0]+ [x] 
 
def is_strong(s: str): 
    return any(x.isupper() for x in s) and any(x.islower() for x in s)  
    and any(x.isdigit() for x in s) and len(s) >= 88 
     
print(devisors(44)) 
print(is_strong("blabla"))