count = 1
for i in range(10):
for j in range(0, i):
print(count, end='')
count = count +1
print()
input()
J'écris un programme qui devrait avoir la sortie qui ressemble à ceci.
1
22
333
4444
55555
666666
7777777
88888888
999999999
Avec le code que j'ai écrit, je suis assez proche, mais la façon dont mon compte fonctionne fonctionne littéralement de plus en plus. J'ai juste besoin d’aide pour que cela ne compte que pour 9 mais affiche comme ci-dessus. Merci.
Vous incrémentez count
dans la boucle intérieure, raison pour laquelle vous continuez à obtenir de plus grands nombres avant de vouloir
Vous pouvez simplement faire ça.
>>> for i in range(1, 10):
print str(i) * i
1
22
333
4444
55555
666666
7777777
88888888
999999999
ou si vous voulez la boucle imbriquée pour une raison quelconque
from __future__ import print_function
for i in range(1, 10):
for j in range(i):
print(i, end='')
print()
for i in range(1,10):
for j in range(0,i):
print i,
print "\n"
Cela fonctionne à la fois dans python2 et python3:
for i in range(10):
print(str(i) * i)
Ceci est une solution en une seule ligne. Un peu long:
print ('\n'.join([str(i)*i for i in range(1,10)]))
"""2. 111 222 333 printing"""
for l in range (1,10):
for k in range(l):
print(l,end='')
print()
Remplacez print(count, end='')
par print(i + 1, end='')
et supprimez count
. Assurez-vous simplement de comprendre pourquoi cela fonctionne.
L'erreur simple dans votre code est l'emplacement de count = count + 1. Il devrait être placé après la seconde pour le bloc de boucle. J'ai apporté une simple modification à votre propre code pour obtenir le résultat souhaité.
from __future__ import print_function
count = 0
for i in range(10):
for j in range(0, i):
print(count,end='')
count = count +1
print()
Cela donnera la sortie que vous voulez avec le code que vous avez écrit. :)
Ce que vous essayez de faire implique un concept mathématique appelé numéros de repunit
vous pouvez aussi le faire comme suit:
for i in range(1,n):
print (int(i*((10**i)-1)/9))
C'est ce que tu veux:
for i in range(10):
print(str(i) * i)
count = 1
for i in range(9):
for j in range (-1, i):
print (count, end = '')
count = count + 1
print (" ")
J'ai réalisé que le problème était résolu, mais voici comment vous voulez que votre code ressemble.
count=0
for i in range(10):
for j in range(0, i):
print (count, end='')
count +=1
print()
je pense que la réponse de @Dannnno est plus courte et va droit au but :)