안녕하세요. BlockDMask 입니다.
오늘은 파이썬 assert 에 대해서 이야기 해보려 합니다.
<목차>
1. 파이썬 assert 설명과 간단 사용법
2. 파이썬 assert 예제
1. assert 설명
1-1) python assert 설명
예외를 발생시키는 예외처리랑 비슷하지만, 예외처리는 에러가 발생했을때 어떤 처리를 하기위한 코드이고, 이 assert (가정 설정문)은 어떤 조건이 True임을 보증하기 위해서 사용하는 것 입니다.
오류를 발생시키는 raise와 비슷하지만 다릅니다. raise에 대한 자세한 설명이 필요하다면 [바로가기]
raise는 만약에 오류가 발생했을때 "except 와 함께 이렇게 처리해라" 는 뜻이고
assert는 이 조건이 참일때 코드는 내가 보장한다. 이 조건은 올바르다!
하지만 이 조건이 거짓이라는 것은 내가 보증하지 않은 동작이다. 그러니 AssertionError를 발생해라.
이런 식의 흐름입니다.
1-2) python assert 사용 방법
assert [조건], [오류메시지]
assert 키워드 뒤에 [조건]을 입력하고 그 뒤에 콤마(,) [오류메시지]를 입력합니다.
이 asset는 [조건]이 True인 경우 그대로 코드 진행, False인 경우 어설트에러 발생하게 됩니다.
[조건] : 이 조건이 True이면 그대로 코드가 진행되고, False라면 AssertionError가 발생합니다.
[오류메시지] : 앞에 조건이 False인 경우 "AssertionError와 함께 남길 메시지" 입니다. 이 부분은 생략이 가능합니다.
간단하게 예시를 들어보면 이런 코드가 있을 수 있습니다.
name = "2BlockDMask"
assert name[0].isalpha(), "이름의 맨 처음은 알파벳으로 시작해주세요"
이런식으로 만약에 아이디나 이름을 입력받으려할때 첫 번째 시작은 무조건 알파벳임을 보장해야하는 경우
사용할 수 있겠죠?
2. assert 예제
2-1) 파이썬 assert 예제1
a = 10
# True 인경우
print("1. assert True 인 경우")
assert a == 10, "a is not 10"
print("끝1")
# Fasle 인 경우
print("2. assert False 인 경우")
assert a == 999, "a is not 999"
print("끝2")
예제 결과를 보면 assert가 True인 경우에는 스무스 하게 코드가 지나가고 "끝1"도 잘 나오는 것을 볼 수 있습니다.
assert a == 999, "a is not 999" 해당 코드에서는 a가 10이므로 a == 999 라는 조건이 맞지 않습니다.
assert의 조건이 False가 되었으므로 "a is not 999"라는 메시지와 함께 AssertionError가 나오는 것을 볼 수 있습니다.
2-2) 파이썬 assert 예제2
age = int(input("나이 입력 : "))
assert age >= 0, '나이가 마이너스인게 가능한가 휴먼?'
print(f"당신의 나이는 : {age} 입니다")
유저로부터 나이를 입력받아야 하는 상황일때
나이는 무조건 0 보다 크거나 같아야 합니다. 이런 상황에서 assert를 이용해서 age는 항상 0 보다 크거나 같음을 보장한다고 생각하고 아래 코드를 작성할 수 있습니다.
(지금 예제는 너무 단순하기는 하지만) 이처럼 assert는 무조건 조건이 참이어야 하는 경우에 사용하기 적절합니다.
assert를 사용해서 에러를 발생시켜서 프로그램을 종료시키는 것도 방법이지만,
if age < 0 일때 다시 입력하라던지 하는 방법으로도 코드를 작성할 수 있겠죠?
상황에 맞게 각자 판단해서 코드를 작성하시면 될 것 같습니다.
이상으로 파이썬 assert 에 대한 포스팅을 마치겠습니다. 감사합니다.
'<개인공부> > [Python]' 카테고리의 다른 글
[python] 파이썬 리스트 합치기 (+, extend, sum) (0) | 2021.07.23 |
---|---|
[python] 파이썬 replace 설명 및 예제 (0) | 2021.07.19 |
[python] 파이썬 isdigit 숫자 판별 (0) | 2021.07.16 |
[python] 파이썬 폴더 생성 방법 os.mkdir, os.makedirs, os.getcwd (0) | 2021.07.15 |
[python] 파이썬 삼항 연산자 (if ~ else ~) (0) | 2021.07.12 |
[python] 파이썬 에러 종류 10가지 (2) | 2021.07.01 |
[python] 파이썬 raise 에러 발생시키기 (1) | 2021.06.30 |
[python] 파이썬 예외처리 try, except, else, finally 사용 방법 (0) | 2021.06.28 |