У меня есть задание для моего колледжа (я новичок), которое просит вас подтвердить пароль, используя символы ASCII. Я пытался использовать простой код, и он работал, однако он продолжал пропускать мою часть ASCII. Список требований:
1.4 Вызов функции для получения действительного пароля OUT: пароль
1.4.1 L oop до тех пор, пока пароль не будет действительным 1.4.2 Попросите пользователя ввести пароль 1.4.3 Убедитесь, что первый символ является заглавной буквой (значения ASCII от 65 до 90). 1.4.4 Убедитесь, что последний символ равен #, $ или% (значения ASCII от 35 до 37). 1.4.5 Верните действительный пароль
U = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
upCase = ''.join(chr(i) for i in U)
print(upCase) #Ensure it is working
def passVal(userPass):
SpecialSym = ["#", "$", "%"]
val = True
#Common way to validate password VVV
if len(userPass) < 8:
print("Length of password should be at least 8")
val = False
if not any(char.isdigit() for char in userPass):
print("Password should have at least one numeral")
val = False
#I Tried same with ASCII (and other methods too) but it seemed to be skipping this part VVV
if not any(upCase for char in userPass):
print("Password should have at least one uppercase letter")
val = False
if not any(char.islower() for char in userPass):
print("Password should have at least one lowercase letter")
val = False
if not any(char in SpecialSym for char in userPass):
print("Password should have at least on fo the symbols $%#")
val = False
if val:
return val
def password():
if (passVal(userPass)):
print("Password is valid")
else:
print("Invalid Password !!")
userPass = input("Pass: ")
password()