web-dev-qa-db-ja.com

ネストされたループPython

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まで数えるだけで、上記のように表示するのに助けが必要です。ありがとう。

enter image description here

3
iMaxPrime

内側のループで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()
9
Dannnno
for i in range(1,10):
    for j in range(0,i):
        print i,
print "\n"
2
Raghav Chadha

これは、python2とpython3の両方で機能します。

for i in range(10):
  print(str(i) * i)
2
darkcharl

コードの単純な間違いは、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)]))
1
Coskun Soysal
"""2. 111 222 333 printing"""

for l in range (1,10):
    for k in range(l):
        print(l,end='')
print()
0
Harit Singh

print(count, end='')print(i + 1, end='')に変更し、countを削除します。それが機能する理由を理解していることを確認してください。

0
David Ehrmann

これは問題となる1行のコードになる可能性があります

print(''.join([str(x)*x+ '\n' for x in range(1,10)]))
0
HamzaMushtaq

あなたがやろうとしていることは、 レピュニット番号 と呼ばれる数学的概念を含みます

次のようにすることもできます。

for i in range(1,n):
    print (int(i*((10**i)-1)/9))
0

これは、あなたの望むことですか:

for i in range(10):
    print(str(i) * i)
0
Zacrath
count = 1
for i in range(9):
    for j in range (-1, i):
        print (count, end = '')
    count = count + 1
    print (" ")
0
Arvind T

問題が解決したことに気づきましたが、コードを次のように表示したいと思います。

count=0
for i in range(10):
    for j in range(0, i):
        print (count, end='')
count +=1
print()

@Dannnnoの答えは短くてまっすぐだと思います:)

0
Tejumade