Я хочу напечатать фиксированное письмо 1080 раз в python. Я хочу напечатать количество строк, не доходя до конца - PullRequest
0 голосов
/ 12 февраля 2020

Вот мой код: print(('i')*1080, "\n"). Вывод как показано ниже. Я не уверен, как печатать число n раз, не доходя до конца.

Мой вывод:

pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp

Требуется вывод:

ppppppppppppppppppppppppppppppppppppppppppppppppppp
ppppppppppppppppppppppppppppppppppppppppppppppppppp
ppppppppppppppppppppppppppppppppppppppppppppppppppp

Ответы [ 2 ]

3 голосов
/ 12 февраля 2020

Используйте модуль textwrap

import textwrap

print("\n".join(textwrap.wrap("n"*1000, width=100)))

Выход:

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
0 голосов
/ 12 февраля 2020

Вы можете использовать al oop, чтобы отслеживать текущую строку, а затем печатать объединенную строку каждый раз, когда длина достигает желаемого значения:

Один из способов - проверить, делится ли я на ваши предпочтительные значения. длина символа.

temp_string = ''
for i in range(1080):
    if i % 52 == 0:
        print(temp_string)
        temp_string = ''
    elif i == 1079:
        print(temp_string)

    temp_string = '{}{}'.format(temp_string, 'P')

Другой вариант - проверить, является ли длина временной строки предпочтительной длиной.

temp_string = ''
for i in range(1080):
    if len(temp_string) == 52:
        print(temp_string)
        temp_string = ''
    elif i == 1079:
        print(temp_string)

    temp_string = '{}{}'.format(temp_string, 'P')

Существует библиотека, которую вы можете использовать под названием textwrap, которая будет производить те же самые результаты:

import textwrap


temp_string = ''
for _ in range(1080):
    temp_string = '{}{}'.format(temp_string, 'P')

print(textwrap.fill(temp_string, 52))

Или с некоторым пониманием списка как один лайнер.

print(*['P' * 52 for i in range(1080//52)] + [('P' * (1080 % 52))], sep='\n')

Или понимание списка с нарезкой:

print(*[("P"*1080)[i:i+52] for i in range(0, 1080, 52)], sep='\n')
...