본문 바로가기
IT/파이썬 기초 (Python)

#043 파이썬 기초 - 더 많은 것들 II

by DoitSQL 2023. 3. 26.
728x90

 Python기초강의강좌, 파이썬기초강의강좌, 리스트 축약(Comprehension), assert

#043 파이썬 기초 - 더 많은 것들 II

더 많은 것들 II

지난 시간에 이어서 앞으로 파이썬을 사용하면서 추가로 알아두면 좋을 몇 가지를 다뤄 보겠습니다


리스트 축약(Comprehension)

리스트 축약은 이미 존재하는 하나의 리스트를 기반으로 또 다른 리스트를 생성할 때 사용됩니다. 예를 들어 숫자로 이루어진 리스트가 하나 있을 때 이 리스트의 모든 항목에 대해 각 항목이 2 보다 클 경우에만 2를 곱해준 리스트를 생성하고 싶다고 해 봅시다. 리스트 축약은 이러한 상황에 적절하게 사용될 수 있습니다.

 

예제 ( more_list_comprehension.py로 저장하세요):

# Filename : more_list_comprehension.py
listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
print(listtwo)

▶ 실행 결과:

C:\Anaconda\envs\study_39\python.exe E:\python_study\more_list_comprehension.py
[6, 8]

▶ 동작 원리:

위 예제에서는 기존 리스트에서 특정 조건 ( if i > 2 )을 만족하는 항목에 대해 2를 곱해주는 조작을 가한 (2*i) 새 리스트를 생성하였습니다. 이때 기존 리스트는 변경되지 않습니다.

 

리스트 축약을 사용하면 반복문을 사용하여 리스트에 있는 각각의 항목에 접근하고 새 리스트를 생성하는 등의 많은 양의 코드를 한 번에 줄여서 쓸 수 있는 장점이 있습니다


함수 인자를 튜플이나 사전 형태로 넘겨받기

 `*` 혹은 `**` 을 이용하면 함수의 매개 변수를 튜플이나 사전 형태로 넘겨받을 수도 있습니다. 이 방법은 함수의 인자의 개수가 정해지지 않은 함수를 정의하고 싶을 때 유용하게 사용됩니다.

 

예제 ( powersum.py로 저장하세요):

# Filename : powersum.py
def powersum(power, *args):
    '''Return the sum of each argument raised to the specified power.'''
    total = 0
    for i in args:
        total += pow(i, power)
    return(total)

print(powersum(2, 3, 4))
print(powersum(2, 10))

▶ 실행 결과:

C:\Anaconda\envs\study_39\python.exe E:\python_study\powersum.py
25
100

▶ 동작 원리:

변수 args 앞에 `*` 을 붙여 주면, 함수로 넘겨진 모든 다른 인수들이 args라는 튜플에 담긴 형태로 함수에 넘어오게 됩니다. `*` 대신 `**` 을 앞에 붙여 주면, 이번에는 인수들이 사전의 형태, 즉 키/값 쌍의 형태로 변환되어 넘어오게 됩니다.


assert 문

assert 문은 어떤 조건이 참인지 확실하게 짚고 넘어가고 싶을 때 사용됩니다. 예를 들어, 리스트에 적어도 한 개의 항목이 담겨 있어야 하는 상황에서 그렇지 않은 경우 오류 메시지를 발생시키고 싶을 경우와 같을 때 assert 문을 유용하게 사용할 수 있습니다. 조건이 참이 아닌 경우, AssertionError 가 발생됩니다.

 

예제 ( assert.py로 저장하세요):

# Filename : assert.py
mylist = ['item']
assert len(mylist) >= 1
mylist.pop()                # 지정한 위치 값을 삭제하고 삭제한 값 취득
assert len(mylist) >= 1     # 위에서 삭제되어 list는 empty

▶ 실행 결과:

C:\Anaconda\envs\study_39\python.exe E:\python_study\assert.py
Traceback (most recent call last):
  File "E:\python_study\assert.py", line 5, in <module>
    assert len(mylist) >= 1     # 위에서 삭제되어 list는 empty
AssertionError

▶ 동작 원리:

따라서 assert 문은 신중하게 사용하여야 합니다. 보통 이보다는 예외 처리 구문을 작성하여, 즉 문제가 무엇인지 확인하여 사용자에게 오류 메시지를 보여주고 프로그램을 종료하게 하는 과정을 거치도록 하는 것이 낫습니다.


이번 시간에도 파이썬 기초가 끝나고 더 알았으면 하는 것들에 대해 말씀드렸습니다.

다음 시간부터는 유용한 파이썬 라이브러리를 하나씩 알아보겠습니다.

 

감사합니다.

Do it! SQL을 찾아 주셔서 감사합니다. ♥ 댓글이 큰 힘이 됩니다.

 

728x90

댓글