Python

Программирование на Python

Написать функцию, проверяющую введенный пароль на надежность.
Надёжным будем считать пароль, состоящий минимум из восьми символов и включающий хотя бы по одной латинской букве в верхнем и нижнем регистрах и как минимум одну цифру.
Функция check_password(password) должна возвращать True, если переданный в качестве параметра пароль отвечает требованиям надежности. В противном случае возвращаемым значением должно быть False.
Dmitry O
Dmitry O
2 610
Код функции для проверки надежности пароля на Python может выглядеть следующим образом:
 def check_password(password):  

# Проверяем длину пароля

if len(password) < 8:

return False



# Проверяем, есть ли в пароле хотя бы одна латинская буква в верхнем регистре

if not any(char.isupper() for char in password):

return False



# Проверяем, есть ли в пароле хотя бы одна латинская буква в нижнем регистре

if not any(char.islower() for char in password):

return False



# Проверяем, есть ли в пароле хотя бы одна цифра

if not any(char.isdigit() for char in password):

return False



# Если все проверки пройдены успешно, возвращаем True

return True

Пример использования функции:
 password = input("Введите пароль: ")  

if check_password(password):

print("Пароль надежный")

else:

print("Пароль ненадежный")

Функция check_password() возвращает True, если пароль отвечает всем требованиям надежности, и False в противном случае. В этой функции мы проверяем длину пароля, наличие латинских букв в верхнем и нижнем регистре, а также наличие хотя бы одной цифры. Если все проверки пройдены успешно, функция возвращает True.
Акбулат Жаманбаев
Акбулат Жаманбаев
350
Лучший ответ
Dmitry O идеально ^^
Dmitry O зашло с первого раза, спасибо)
вот так покрасивше и информативнее. если надо, ненужные принты всегда можно затереть (19-22 строки включительно)
 def len_check(string): 
return(len(string) >= 8)
def upper_check(string):
return(string.lower() != string)
def lower_check(string):
return(string.upper() != string)
def digit_check(string):
for char in string:
if char.isdigit(): return(True)
return(False)

checks = [len_check, upper_check, lower_check, digit_check]

def check_password(password):
flag_weak_password = False
for check in checks:
result = check(password)
if not result: flag_weak_password = True
print(f'{check.__name__}: {result}')
print()
if flag_weak_password: print('weak password')
else: print('strong password')
return(not flag_weak_password)
def check_password(password):

if len(password) < 8:
return False

has_uppercase = False # Флаг наличия символа в верхнем регистре
has_lowercase = False # Флаг наличия символа в нижнем регистре
has_digit = False # Флаг наличия цифры

for char in password:
if char.isupper():
has_uppercase = True
elif char.islower():
has_lowercase = True
elif char.isdigit():
has_digit = True

return has_uppercase and has_lowercase and has_digit # Пароль надежный, если все три флага установлены в True
да
Ika Vacheishvili
Ika Vacheishvili
323
Dmitry O что-то в коде не корректно, не пойму что, бракует на 5 тесте:
def check_password(password):
if len(password) < 8:
return False
has_uppercase = False # Флаг наличия символа в верхнем регистре
has_lowercase = False # Флаг наличия символа в нижнем регистре
has_digit = False # Флаг наличия цифры
for i in password:
if i.isupper():
has_uppercase = True
elif i.islower():
has_lowercase = True
elif i.isdigit():
has_digit = True
if has_uppercase == True and has_lowercase == True and has_digit == True:
return True
Ika Vacheishvili def check_password(password):
if len(password) < 8:
return False

has_uppercase = False
has_lowercase = False
has_digit = False

for i in password:
if i.isupper():
has_uppercase = True
elif i.islower():
has_lowercase = True
elif i.isdigit():
has_digit = True

if has_uppercase and has_lowercase and has_digit:
return True

return False
почему не получается ???
a=str(input("Введите пароль:"))
b=0
c=0
d=0
e=0
f=0
g=0
w=0
s=0
if len(a)<8:
print(False)
else:
for k in range(len(a)-1):
b=a[:1+c]
d=b.isupper()
if d==True:
break
c+=1
if d==True:
for k in range(len(a)-1):
e=a[:1+f]
g=a.islower()
if g==True:
break
f+=1
if g==True:
print(True)
else:
print(False)
else:
print(False)