본문 바로가기
파이썬/exercise

[파이썬] exercise 05 반복문 패턴

by nemonemonemo 2025. 8. 9.
  • 목적
    • 규칙을 발견해서 생각하고 코드화하는 연습/훈련
      1. 규칙을 발견하는 연습
      2. 그 규칙을 코드화하는 연습
    ⇒ 패턴 찍는 연습 문제
    "@"+"@"+"@"+"@"+"@"
    #@@@@@
    ["INF"] * len(["a","b","c"])
    #['INF', 'INF', 'INF']
  • 접근
    • for + print() 같이 사용하면서 규칙을 구현하는 연습
      • → for문의 기능: 주어진 값을 올링보다는, 단순 반복 횟수
      for i in range(0,5):
          print("@", end="\\n")
      #@
      #@
      #@
      #@
      #@
      for i in range(0,5):
          print("@", end="A")
      #@A@A@A@A@A
      for i in range(0,5):
          print("@", end="")
      #@@@@@
      for _ in range(0,5):
          print("@", end="")
      #@@@@@

 

  • 참고 ) print함수
    • end : 출력을 다 하고, 끝에 무엇을 할지 세팅 → 기본 : 줄바꿈 \n
    • seq : 출력하려는 대상들 사이에 무엇을 표현할지
    print("@", "a", "c")
    
    print("@", "a", "c", sep = "")
    
    print("@", "a", "c", sep="**") 
    #@**a**c
    
    • 예시2

      print("@"*5) #@@@@@
      
      for _ in range(4):
          print("@"*5)
      #@@@@@
      #@@@@@
      #@@@@@
      #@@@@@
      ​
      for _ in range(4):
          for _ in range(5):
              print("@", end="") #옆으로 붙이기 위해 end=""
          print("", end="\\n")
      #@@@@@
      #@@@@@
      #@@@@@
      #@@@@@
  • 예시3

    print('@')
    print('@@')
    print('@@@')
    print('@@@@')
    print('@@@@@')
    
    print('@' * 1)
    print('@' * 2)
    print('@' * 3)
    print('@' * 4)
    print('@' * 5)
    # ==> 규칙을 찾을 수 있냐!!!
    # print("@" * i) , i :1~5 --> range(1,6,1)
    
    for i in range(1,6,1):
        print("@" * i)
    #@
    #@@
    #@@@
    #@@@@
    #@@@@@

 

  • 예시4

    • 참고) 빈 공백이 애매하게 생각할 수 있는데,,,공백도 하나의 문자처럼!
      @@@@@
      X@@@@
      XX@@@
      XXX@@
      XXXX@
    print("X"*0 + "@"*5)
    print("X"*1 + "@"*4)
    print("X"*2 + "@"*3)
    print("X"*3 + "@"*2)
    print("X"*4 + "@"*1)
    # ==> 규칙화를 할 수 있나!!!! ---> ctrl+ c/v 반복된다!!!
    #                             ---> 고정적인 부분 // 가변적인 부분!!
    print("X"* i + "@"*( 5-i)) # i : 0,1,2,3,4 ==> range(5)
    
    #@@@@@
    #X@@@@
    #XX@@@
    #XXX@@
    #XXXX@
    for i in range(5):
        print(" "* i + "@"*( 5-i))
    #@@@@@
    # @@@@
    #  @@@
    #   @@
    #    @
    for i in range(5, 0, -1):
    	print(" "*(5-i) + "@"*i)
    #@@@@@
    # @@@@
    #  @@@
    #   @@
    #    @

 

  • 예시5
    print("X" * 0 + "@"*9)  # 9 = 4 * 2 + 1
    print("X" * 1 + "@"*7)  # 7 = 3 * 2 + 1
    print("X" * 2 + "@"*5)  # 5 = 2 * 2 + 1
    print("X" * 3 + "@"*3)  # 3 = 1 * 2 + 1
    print("X" * 4 + "@"*1)  # 1 = 0 * 2 + 1
    #@@@@@@@@@
    #X@@@@@@@
    #XX@@@@@
    #XXX@@@
    #XXXX@

    # 규칙 :
    print("X" * i + "@"*((4-i) *2 + 1)) # i : 0~4 --> range(0,5,1)
    ​
    for i in range(0,5,1):
        print("X" * i + "@"* ((4-i) * 2 + 1))
    #@@@@@@@@@
    #X@@@@@@@
    #XX@@@@@
    #XXX@@@
    #XXXX@
    for i in range(0,5,1):
        print(" " * i + "@"* ((4-i) * 2 + 1))
    #@@@@@@@@@
    # @@@@@@@
    #  @@@@@
    #   @@@
    #    @
    ####내가 짠 코드인데 
    for j in range(0,9):
        ##print(" "*j+"@"*(9-j*2)+" "*j) #뒤에 공백은 처리할 필요가 없구나...!
        print(" "*j+"@"*(9-j*2))