J'ai besoin de faire une grille avec les nombres générés par le code, mais je ne comprends pas comment les aligner dans les colonnes. Y a-t-il un paramètre d'impression ou quelque chose d'autre qui pourrait m'aider?
#main() a=0 b=0 for i in range(1, 13): a=a+1 print(" ") b=b+1 for f in range(1,13): print(f*b, end=" ")
Ma sortie pour le moment:
3 Réponses :
Je recommanderais d'utiliser les f-strings de python:
1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144
Voici le résultat:
for i in range(1, 13): print(''.join(f"{i*j: 4}" for j in range(1,13)))
La forme la plus courante est d'utiliser presque toute expression arbitraire entre les accolades. Cela peut inclure des valeurs de dictionnaire, des appels de fonction, etc. L'utilisation ci-dessus spécifie le formatage après les deux points. L'espace avant le 4
indique que le caractère de remplissage doit être un espace, et le 4 indique que l'expression entière doit prendre 4 caractères au total. Pour plus d'informations, consultez la documentation . P >
Étant donné que la largeur de chaque cellule de la grille est stockée sous la forme w
, ce qui pour l'extrait ci-dessus suffit à 4, une grille régulièrement espacée peut être imprimée en utilisant
1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144
Son la sortie est
w = 4 a, b = 0, 0 for i in range(1, 13): a, b = a+1, b+1 for f in range(1, 13): print(('{:'+str(w)+'}').format(f*b), end='') print('')
Vous pouvez référencer les valeurs d'argument de mot-clé transmises à la méthode str.format ()
dans la chaîne de format par nom via {name}
. Voici un exemple de cela où la valeur référencée est calculée (par opposition à être une constante):
1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144
Sortie:
mx = 12 w = len(str(mx*mx)) + 1 for b in range(1, mx+1): for f in range(1, mx+1): print(('{:{w}}').format(f*b, w=w), end='') print('')
Pouvez-vous montrer votre sortie?
Bien sûr, lien
Max: ajoutez le lien à votre question ou, mieux encore, copiez et collez simplement le résultat dans votre question sous forme de texte.
@martineau ok merci