ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬으로 등차수열 리스트 구현하기(range함수/append함수)
    파이썬 2023. 3. 26. 23:54

     

    등차수열

    a = [1, 3, 5, 7, 9....]

    an = 2n-1

    문제1) 위 등차수열의 100번째 항(a100)을 구하여라.

    코드)
    n = 100
    a_n = 2 * n - 1
    print(a_n)
    실행결과)
    199

     

    문제2) 1항에서 100항까지 나열하는 코드를 작성하시오.

    코드)
    for n in range(1,100+1) : 
      a_n = 2 * n - 1
      print(a_n)

    # range(a, b) : a부터 b-1까지 정수 범위를 만듦
    실행결과)
    1
    3
    5
    7
    :
    195
    197
    199

     

    문제3) 1항부터 10항까지 들어있는 리스트를 생성하시오.

    코드)
    a = [ ]
    for n in range(1,10+1) : 
      a_n = 2 * n - 1
      a.append(a_n)
    print(a)

    # a.append(요소) : 리스트 뒤에 요소를 추가하는 함수                                                
    실행결과) 
    [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

     

    실무 꿀팁!
    an = [1, 3, 5, 7, 9 ...]
    리스트에서 요소 셀 때 0부터 센다. 
    따라서 n항(an)의 리스트 인덱스는 a[n-1]와 같다. 

    a_1 = 1 → a[0] = 1
    a_2 = 3 → a[1] = 3

    개발자들끼리 헷갈리지 않도록 [0]번째 요소에 'none' 이나 '없음' 등의 의미없는 요소를 넣어주면
    n항의 리스트 인덱스는 a[n]으로 동일하게 맞춰 줄 수 있다. 
    a_n = ['none', 1, 3, 5, 7, 9 ...]

    a_1 = 1 → a[1] = 1
    a_2 = 3 → a[2] = 3

    코드) 
    a = ["none" ]

    for n in range(1,10+1) : 
      a_n = 2 * n - 1
      a.append(a_n)
    print(a)

    실행결과)
    ['none', 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

    점화식 : 이전 항을 기반으로 다음 항을 만드는 방법

    an = an-1

    a1 = 1

    문제4) 위 점화식을 활용하여 1항부터 10항까지 들어있는 리스트를 생성하시오.

    코드)
    a = ["none"]
    for n in range(1,10+1) : 
      if n == 1 :
        a_n =1
      else :
        a_n = a[n-1] + 2
      a.append(a_n)
    print(a)
    실행결과) 
    ['none', 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

     

    실무 꿀팁!
    파이썬에서는 append 함수를 이용하여 고용량의 리스트를 작성하게 되면 로딩이 많이 걸리게 된다. 
    실무에서는 append 함수보다는 미리 리스트 요소 개수를 만들어 놓는 방법을 사용한다. 

    문제4) 위 점화식을 활용하여 1항부터 10항까지 들어있는 리스트를 생성하시오.
    N = 100 
    a = ["none"] * (N + 1)      → 요소 개수를 101개로 미리 정해놓음
    for n in range(1, N+1) :
      if n == 1 :
        a[1] = 1
      else :
        a[n] = a[n-1] + 2
    print(a)

    댓글

Designed by Tistory.