Здравствуйте!
Задача:
Создаём класс User, где хранится логин и пароль пользователя.
В классе есть две функции сетер и гетер (password).
Одна устанавливает значение пароля другая смотрит.
Прежде чем установить значение пароля функция password-сетер
проверяет чтоб пароль был строкой, определённой длины, чтоб пароль имел хотя бы одну
цифру(в этом ей помогает функция is_include_number). Функция password_dictionary открывает текстовый файл
в котором записаны легкие пороли(qwerty, 12345678, abcde) и в функции password-сетер проверяется если пароль легкий то вывести ошибку.
Но когда я в консоли ввожу:
g = User('aaa', 'asddf3')
где код должен вывести правильно, то мне выводит:
Traceback (most recent call last):
File "C:\Users\HP\AppData\Local\Programs\Python\Python310\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
File "<input>", line 5, in __init__
File "<input>", line 38, in password
File "<input>", line 21, in password_dictionary
FileNotFoundError: [Errno 2] No such file or directory: 'input(OO�).txt'
Почему так?
Операционная система - Windows
Версия Питон - 3.10
Задача:
Создаём класс User, где хранится логин и пароль пользователя.
В классе есть две функции сетер и гетер (password).
Одна устанавливает значение пароля другая смотрит.
Прежде чем установить значение пароля функция password-сетер
проверяет чтоб пароль был строкой, определённой длины, чтоб пароль имел хотя бы одну
цифру(в этом ей помогает функция is_include_number). Функция password_dictionary открывает текстовый файл
в котором записаны легкие пороли(qwerty, 12345678, abcde) и в функции password-сетер проверяется если пароль легкий то вывести ошибку.
Но когда я в консоли ввожу:
g = User('aaa', 'asddf3')
где код должен вывести правильно, то мне выводит:
Traceback (most recent call last):
File "C:\Users\HP\AppData\Local\Programs\Python\Python310\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
File "<input>", line 5, in __init__
File "<input>", line 38, in password
File "<input>", line 21, in password_dictionary
FileNotFoundError: [Errno 2] No such file or directory: 'input(OO�).txt'
Почему так?
Код:
from string import digits
class User:
def __init__(self, login, password):
self.login = login
self.password = password
@property
def password(self):
print('getter called')
return self.__password
@staticmethod
def is_include_number(password):
for digit in digits:
if digit in password:
return True
return False
@staticmethod
def password_dictionary(password):
a = open('input(OOП).txt')
for i in a:
if password == i:
return False
return True
@password.setter
def password(self, value):
print('setter called')
if not isinstance(value, str):
raise TypeError("Пароль должен быть строкой")
if len(value) < 4:
raise TypeError("Длина пароля слишком мала, минимум должно быть 4 символа")
if len(value) > 12:
raise TypeError("Длина пароля слишком велика, максимум должно быть 12 символа")
if not User.is_include_number(value):
raise TypeError("Пароль должен содержать хотя бы одну цифру")
if User.password_dictionary(value):
raise TypeError("Пароль слишком легкий")
self.__password = value
Операционная система - Windows
Версия Питон - 3.10
Последнее редактирование модератором: