omgit
@omgit
Изучаю Python

Ребята, как сделать проверку спец символов и написать если p1 и p2 то хорошо?

import string
s1 = string.ascii_letters
s2 = string.digits
s3 = string.punctuation
while True:
    s = input('password >>> ')
    
    if len(s) <=5:
            print("Short password")
    for i in range(len(s)):
        p1 = s3.find(s[i]) > 0
        p2 = s[i].isdigit()
        p3 = s[i].isupper()
        p4 = s[i].islower()
        p5 = s[i].isnumeric()
        p6 = s[i].isalpha()

        if p1 and p2 in [i]:
            print("good")
  • Вопрос задан
  • 672 просмотра
Решения вопроса 1
danila763
@danila763
Учу python, sql
Немного изменил ваш код. Я проверял пересечение множеств символов пароля и символов которые в нем должны быть.

import string

s1 = set(string.ascii_letters)
s2 = set(string.digits)
s3 = set(string.punctuation)
while True:
    s = input('password >>> ')

    if len(s) <= 5:
        print("Short password")
    elif not set(s).intersection(s3):
        print('Not punctuation in password')
    elif not set(s).intersection({'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}):
        print('Not numbers in password')
    else:
        print('Good password')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы