Вот мой код к задаче Т. База данных пользователей. На 3 тесте ловлю ошибку RE. Подскажите пожалуйста, что не так?
from datetime import datetime
import re
_database = []
def insert(*users):
for user in users:
if any(u['id'] == user['id'] for u in _database):
raise ValueError(f"User with id {user['id']} already exists")
if any(u['name'] == user['name'] for u in _database):
raise ValueError(f"User with name {user['name']} already exists")
_database.append(user)
def select(condition=None):
filtered_users = _database.copy()
if condition:
match = re.match(r'^(\w+)\s*(<=|>=|<|>|==)\s*(.+)$', condition.strip())
if not match:
raise ValueError("Invalid condition format")
field, operator, value = match.groups()
def compare(user):
try:
if field == 'id':
user_value = user['id']
value_casted = int(value)
elif field == 'name':
user_value = user['name']
value_casted = value # строка
elif field == 'birth':
user_value = datetime.strptime(user['birth'], '%d.%m.%Y')
value_casted = datetime.strptime(value, '%d.%m.%Y')
else:
return False
if operator == '<':
return user_value < value_casted
elif operator == '>':
return user_value > value_casted
elif operator == '<=':
return user_value <= value_casted
elif operator == '>=':
return user_value >= value_casted
elif operator == '==':
return user_value == value_casted
except (KeyError, ValueError):
return False
filtered_users = [u for u in filtered_users if compare(u)]
return sorted(filtered_users,
class BadCharacterError (Exception):
pass
class StartsWithDigitError(Exception):
pass
def username_validation(nam):
if not isinstance(nam, str):
raise TypeError
for i in nam:
if not (i.isalnum() or i == '_'):
raise BadCharacterError
if nam[0].isdigit():
raise StartsWithDigitError
return nam
добрый день подскажите пожалуйста не работает задача H 23 тест
уже все перепробовал что может быть не так?
#вопрос задача S
Всем, привет ✋🏻
Видел решение данной задачи, но мне интересно, как я могу улучшить свой код? Главное условие, чтобы print был до 35 символов
Подскажите, пожалуйста, у кого PyCharm, как завершить ввод данных при использовании stdin? "CTRL + Z затем ENTER" не помогает, так же не работает "CTRL + D затем ENTER"
Смена раскладки клавиатуры с ру на eng не помогает