count = 1
for i in range(10):
for j in range(0, i):
print(count, end='')
count = count +1
print()
input()
私はこのような出力を持つべきプログラムを書いています。
1
22
333
4444
55555
666666
7777777
88888888
999999999
上記のコードで私はかなり近いですが、私のカウントが機能している方法は文字通りカウントアップします。 9まで数えるだけで、上記のように表示するのに助けが必要です。ありがとう。
内側のループでcount
をインクリメントしているため、必要になる前に大きな数値を取得し続けます
あなたはこれを行うことができます。
>>> for i in range(1, 10):
print str(i) * i
1
22
333
4444
55555
666666
7777777
88888888
999999999
または、何らかの理由でネストされたループが必要な場合
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"
これは、python2とpython3の両方で機能します。
for i in range(10):
print(str(i) * i)
コードの単純な間違いは、count = count +1の配置です。2番目のforループブロックの後に配置する必要があります。必要な出力を取得するために、独自のコードに簡単な変更を加えました。
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()
これにより、作成したコードで必要な出力が得られます。 :)
これは1行のソリューションです。少し長い:
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()
print(count, end='')
をprint(i + 1, end='')
に変更し、count
を削除します。それが機能する理由を理解していることを確認してください。
これは問題となる1行のコードになる可能性があります
print(''.join([str(x)*x+ '\n' for x in range(1,10)]))
あなたがやろうとしていることは、 レピュニット番号 と呼ばれる数学的概念を含みます
次のようにすることもできます。
for i in range(1,n):
print (int(i*((10**i)-1)/9))
これは、あなたの望むことですか:
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 (" ")
問題が解決したことに気づきましたが、コードを次のように表示したいと思います。
count=0
for i in range(10):
for j in range(0, i):
print (count, end='')
count +=1
print()
@Dannnnoの答えは短くてまっすぐだと思います:)