Lecture 강의

Undergrads 학부 Graduates 대학원 역학(Mech)/설계(Design)/FEM 인공지능(AI)/기계학습(ML)/IoT SAP/ETABS OpenSees/FeView/STKO 아바쿠스(Abaqus) 파이썬(Python)/매트랩(Matlab) 엑셀(Excel) VBA 마이다스(MIDAS)

[02. 문법] 2.3 제어문 - if, for, while, break, continue, 한 줄 list comprehesion(리포함수)

작성자 : k2k

(2023-02-19)

조회수 : 1683

[참조]

 

다른 프로그래밍 언어와 같이 파이썬에도 if, for, while 등의 제어문이 있으며, break, continue 의 키워드도 동일하다.

(1) 조건문: if 
(2) 반복문: for, while
(3) break, continue
(4) List Comprehension 리스트 컴프리헨션


 

조건설정 다음에 콜론(:)을 찍어준다.
명령구문들은 들여쓰기를 한다.

 

(1) 조건문: if 

  • 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 사용한다.
  • 파이썬에는 switch/case 문이 없으므로, if 문으로 작성한다.
     
  • Ex 1)
    if a > 0: 
        print(a) # a가 0보다 큰 경우 a를 출력한다.
    else:
        print(b) # a가 0보다 크지 않은 경우 b를 출력한다.

     

  • Ex 2)
    if x < 0:
        print('negative') # x가 0보다 작은 경우 negative를 출력한다.
    elif x < 10:
        print('0<=x<10') # x가 0보다 크거나 같고 10보다 작은 경우 0<=x<10를 출력한다.
    else:
        print('x>=10') # x가 10보다 크거나 같은 경우 x>=10를 출력한다.

     

        삼항연산자(ternary operator)

            간단한 조건물을 한 줄로 표현할 수 있음

            status = "성인" if age >= 18 else "미성년자"
            # result = value_if_true if condition else value_if_false   

 

 

(2) 반복문: for, while 

  • 명령이 반복되는 경우에 사용한다.
  • for문은 for [변수] in [문자열, 리스트, 튜플]: 부분을 통해 새로운 변수를 만든다.
  • while문은 while [조건문]: 부분을 통해 변수의 True/False 여부를 판단할 뿐, 새로운 변수를 만들 수 없다.

     
  • Ex 1) range() 사용 
    for i in range(10):
        print(i) # range(10)은 0,1,2,3,4,5,6,7,8,9 숫자를 생성한다.

    결과)
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

     

  • Ex 2) list 데이터 타입의 사용
    xdata = [0.1,4,3]
    for x in xdata:
        print(x)

    결과)
    0.1
    4
    3

     

  • Ex 3) 인덱스와 리스트 멤버 동시 접근 : enumerate(list) 사용
    items = [9,5,4,10]
    for idx, val in enumerate(items):
        print(idx, val) # enumerate(items)는 (인덱스,객체)인 [(0,9), (1,5), (2,4), (3,10)]를 생성한다.

    결과)
    0 9
    1 5
    2 4
    3 10

     

  • Ex 4) while (무한)반복문
    while True:
        key = input()
        if key == 'x':
            break  # x가 입력되면 while 반복문을 깨고 나온다.
        print(key) 

 

(3) break, continue

  • break는 특정 조건일때 아예 반복문을 깨고 나오게 한다.
  • continue문은 어떤 조건일때 반복문 안에 명시된 구문을 건너뛴다.
     
  • Ex 1) break
    for val in "string":
        if val == "i":
            break # s, t, r 까지 출력한 후, i가 되면 for 반복문을 깨고 나온다.
        print(val)

    결과)
    s
    t
    r

     

  • Ex 2) continue
    for val in "string":
        if val == "i":
            continue # s, t, r 까지 출력한 후, i가 되면 반복문을 건너 뛰고, n, g를 출력한다.
        print(val)

    결과)
    s
    t
    r

    n
    g

 

 

(4) List Comprehension 리스트 컴프리헨션(리포함수)

여기서 Comprehension이란 '이해'라기 보다는 '포함'이란 뜻을 갖는다.

파이썬의 강력하고 간결한 문법 기능

기존 리스트를 기반으로 특정 조건에 맞는 새로운 리스트를 생성할 수 있다.

장점: 1. 코드가 간결, 2. for문보다 빠름, 3. 함수형 프로그래밍 스타일 적용 가능

 

1. 간단한 리스트 생성:

squares = [x**2 for x in range(10)]
# 결과: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

K_elements = [beam_stiffness_matrix(E, I, element_length) for _ in range(num_elements)
# _ 은 변수가 없을 때 사용]    

 

2. 조건부 리스트 생성:

even_squares = [x**2 for x in range(10) if x % 2 == 0]
# 결과: [0, 4, 16, 36, 64]    

 

3. 2차원 리스트

matrix = [[i*j for j in range(1, 4)] for i in range(1, 4)]
# 결과: [[1, 2, 3], [2, 4, 6], [3, 6, 9]]