Знакомый попросил помочь решить задачу на ЯП 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()
Опытные кодеры, пожалуйста дайте свой отзыв и скажите что можно подправить, а то я оказался в ЧС у своего знакомого, так и не понял почему
8 комментариев