Знакомый попросил помочь решить задачу на ЯП Python

Сама задачка:

"Привет, мир!" с именем Условие: Напишите программу, которая запрашивает у пользователя его имя и выводит на экран приветствие в формате: "Привет, [имя]!" Пример работы программы: text Введите ваше имя: СашаПривет, Саша!
Вот мой код:

import sys from functools import reduce from operator import concat class GreetingFactory: def __init__(self): self._name_storage = [] def _obfuscated_input(self): def _recursive_input(prompt, depth=0): if depth >= 3: return input(prompt) return _recursive_input(prompt, depth + 1) return _recursive_input("Введите ваше имя: " * 1) def _process_name(self, raw_name): name_chars = list(raw_name.strip()) def _transform_char(c): return c.lower() if ord(c) % 2 == 0 else c.upper() processed_chars = map(_transform_char, name_chars) normalized_name = reduce( lambda x, y: x + y, processed_chars, "" ).capitalize() self._name_storage.append(normalized_name) return normalized_name def _generate_greeting(self): template_parts = [ "П", "р", "и", "в", "е", "т", ",", " ", "{", "0", "}", "!", "\n" ] template = reduce(concat, template_parts) return template.format(*self._name_storage) def execute(self): try: raw_name = self._obfuscated_input() if not raw_name: raise ValueError("Имя не может быть пустым") self._process_name(raw_name) greeting = self._generate_greeting() sys.stdout.write(greeting) except Exception as e: sys.stderr.write(f"Ошибка: {str(e)}\n") sys.exit(1) if __name__ == "__main__": def _create_factory(): return GreetingFactory() factory = _create_factory() for _ in range(1): factory.execute()

Опытные кодеры, пожалуйста дайте свой отзыв и скажите что можно подправить, а то я оказался в ЧС у своего знакомого, так и не понял почему

4
1
8 комментариев