Как напечатать выровненный текст в Python? - PullRequest
0 голосов
/ 21 апреля 2020

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

enter image description here

Вывод не должен быть изображением, он просто показывает, как он должен выглядеть.

Пример предложения:

Не надо sh быть нормальным. Wi sh чтобы быть собой. На рукоять. Узнайте, в чем вы лучше всего, и развивайте его, и угадайте свои слабости. Wi sh, чтобы быть великим в том, что вы есть. "

Это код, который я написал, но единственная проблема, которая у меня есть, заключается в том, что последнее предложение состоит из двух точек в конце предложения Вы знаете, как это исправить?

вход:

text = list("Don't wish to be normal. Wish to be yourself. To the hilt. "
            "Find out what you're best at, and develop it, and hopscotch your weaknesses. Wish to be great at wahtever you are.".split(". "))
num = 40

# text = list(input("Enter the text (sentences separated by periods):").split(". "))
# num = int(input("Enter the desired width of the text:"))

l1 = [list(x.split(" ")) for x in text]

length = len(text)

l2 = [print(l1[i][0].ljust(0), " ".join(l1[i][1:-1]).center(num-len(l1[i][0])-len(l1[i][-1])-1), l1[i][-1].rjust(-1), ".", sep="")
      for i in range(length) if len(text[i])<= num]

выход:

Don't         wish to be         normal.
Wish           to be           yourself.
To               the               hilt.
Wish  to be great at wahtever you  are..
...