Как альтернативно напечатать 2 разных строки при использовании end = ''? - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь напечатать эти две строки поочередно, но не могу найти способ обойти их без использования end = ''. Я пытаюсь использовать как можно меньше строк, моя цель - использовать только 2 строки.

num_of_stars = int(input("How many stars would you like on each line?: 
"))
lines1 = 0
lines2 = 0
alternator = 0
def line1(num_of_stars):
    for i in range(num_of_stars):
        print("*", end=' ')
def line2(num_of_stars):
    for i in range(num_of_stars):
        print(" *", end='')
while lines1 <= 4 and lines2 <= 4:
    if alternator == 0:
        line1(num_of_stars)
        lines1 += 1
        alternator = 1
    elif alternator == 1:
        line2(num_of_stars)
        lines2 += 1
        alternator = 0

Мои результаты только что были такими: * * * * * * * * * * * ** ** * * * * * * * * ** * * * * * * * * * * ** * * * * * * * * * * ** * * * * *

Ответы [ 2 ]

1 голос
/ 03 ноября 2019

Непонятно, что вы хотите. Но вы, вероятно, не хотите использовать технику print( ... , end=...), показанную в вашем коде.

Было бы намного проще назначить

stars = ['*'] * num_of_stars
line = ' '.join(stars)

, а затем

for i in range(4):
    indent = ' '[:i % 2]
    print(indent + line)

Строка indent будет пустой или пустой, в зависимости от того, четный я или нечетный.

0 голосов
/ 08 ноября 2019

Прежде всего, функция конца строки 2 - это просто пробел, который объясняет, почему существуют группы из 2 звезд, сгруппированных с интервалами. Попробуйте это:

num_of_stars = int(input("How many stars would you like on each line?: "))
lines1 = 0
lines2 = 0
alternator = 0
def line1(num_of_stars):
    for i in range(num_of_stars):
        print("*", end="")
    print("\n")
def line2(num_of_stars):
    for i in range(num_of_stars):
        print("*", end="")
    print("\n")
while lines1 <= 4 and lines2 <= 4:
    if alternator == 0:
        line1(num_of_stars)
        lines1 += 1
        alternator = 1
    elif alternator == 1:
        line2(num_of_stars)
        lines2 += 1
        alternator = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...