Почему не обрезается строка до 256 символов

В программе предусмотрены два шаблона сообщений. На вход поступает две или три строки:

  • Строка 1 — принимает одно из трех возможных событий. Событие определяет, который из двух шаблонов следует использовать. Возможные события: GREETING, NOTIFY, DENIAL. Первый тип соответствует первому шаблону (template1), второй и третий — второму шаблону (template2). Если событие введено неверно - программа завершается с сообщением "wrong event".

  • Строка 2 — принимает имя пользователя и его id через пробел. Формат строки: "{name} {id}".

  • Строка 3 — принимается только если в первой строке было передано событие NOTIFY или DENIAL, и содержит текст сообщения для пользователя.

Ваша задача собрать из нужного шаблона оповещение, подставив туда имя пользователя, его id и сообщение (если необходимо).

Если полученное сообщение содержит больше 256 символов, обрежьте его до нужной длины так, чтобы после подстановки в конце троеточия (…) вышло ровно 256 символов.

template1 = 'For {0}: Hello, {1}. Welcome to our nice service!'
template2 = 'For {0}: Sir/Madam {1}, regarding your application: {2}'
event = input()
user_name_id = input("Введите имя и id через пробел\n")

if event == 'GREETING':
  print(template1.format(user_name_id.split()[1], user_name_id.split()[0]))
elif event == 'NOTIFY' or event == 'DENIAL':
  message = input('Message: ')
  print(template2.format(user_name_id.split()[1], user_name_id.split()[0], message))
  if len(message) > 256:
    print(message[:256 - len(template2.format(user_name_id.split()[1], user_name_id.split()[0], message))] + '...')
else:
  print("wrong event")

Почему не происходит обрез строки и добавление троеточия?


Ответы (1 шт):

Автор решения: Tory

Нашла ошибку. Спасибо, что помогли разобраться

template1 = 'For {0}: Hello, {1}. Welcome to our nice service!'
template2 = 'For {0}: Sir/Madam {1}, regarding your application: {2}'
event = input()
user_name_id = input("Введите имя и id через пробел: ")

if event == 'GREETING':
  print(template1.format(user_name_id.split()[1], user_name_id.split()[0]))
elif event == 'NOTIFY' or event == 'DENIAL':
  message = input('Message: ')
  res = template2.format(user_name_id.split()[1], user_name_id.split()[0], message)
  if len(res) <= 256:
    print(res)
  if len(res) > 256:
    print(res[:253] + '...')
else:
  print("wrong event")
→ Ссылка