>

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까지만 계산하지만 위와 같이 표시하는 데 도움이 필요합니다. 감사합니다.

  • 답변 # 1

    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()
    
    

  • 답변 # 2

    python2와 python3에서 모두 작동합니다 :

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

  • 답변 # 3

    for i in range(1,10):
        for j in range(0,i):
            print i,
    print "\n"
    
    

  • 답변 # 4

    코드에서 간단한 실수는 count = count + 1입니다. 두 번째 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()
    
    

    이것은 작성한 코드로 원하는 출력을 제공합니다. :)

  • 답변 # 5

    한 줄 솔루션입니다. 조금 길다 :

    print ('\n'.join([str(i)*i for i in range(1,10)]))
    
    

관련 자료

  • 이전 algorithm - 맵에서 값을 업데이트하는 빠른 방법
  • 다음 C #/ASPNET에서 인터넷을 비동기 적으로 확인