J'essaie d'imprimer ces deux chaînes alternativement, mais je ne peux pas trouver un moyen de contourner cela sans utiliser end = ''. J'essaie d'utiliser le moins de chaînes possible, mon objectif est de n'utiliser que 2 chaînes.

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

Mes résultats viennent d'être les suivants: * * * * * * * * * * * * ** * * * * * * * * * * ** * * * * * * * * * * ** * * * * * * * * * * * ** * * * * *

1
adamgeo1 3 nov. 2019 à 18:48

2 réponses

Meilleure réponse

Ce n'est pas clair ce que vous voulez. Mais vous ne voulez probablement pas utiliser la technique print( ... , end=...) montré dans votre code.

Il serait beaucoup plus simple d'attribuer

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

Puis

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

La chaîne indent sera vide ou vide, selon que je suis pair ou impair.

1
J_H 3 nov. 2019 à 16:04

Tout d'abord, la fin de la fonction de la ligne 2 n'est qu'un espace vide, ce qui explique pourquoi il y a des groupes de 2 étoiles regroupés à intervalles. Essaye ça:

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
0
Khang Nguyen 7 nov. 2019 à 23:25