오늘의 파이썬_[함수] bool()함수, bool 활용하기

728x90
반응형

자료형을 변환하기 위한 함수로 int(), str(), float()가 있다. 

a = 10

a를 10으로 초기화시키면 변수 a는 int형 숫자 10이 된다. str함수를 이용하면 10을 숫자가 아닌 문자열로 변경할 수 있다.

 

a = 10
print(type(a))
a_str = str(a)
print(type(a_str))

str() 함수를 이용해 형 변환 후 자료형 타입을 확인해보면 str로 나오는 것을 확인할 수 있다.

<class 'int'>
<class 'str'>

 

그럼 bool함수는 어떻게 사용할까? bool자료형은 true, false 둘 중 하나인데?

 

bool함수에 전달인자로 전달되는 변수에 어떤 값이 있으면 true를 반환하고, 없으면 False를 반환한다. 아래 코드를 보자.

a = 10
print(bool(a))

변수 a를 10으로 초기화 시키고 bool 함수에 전달해 출력해보면 True가 출력되는것을 확인할 수 있다.

 

변수 a를 문자열로 초기화하고 bool함수에 전달해보자.

 

a = "Test"
print(bool(a))

결과는 True, 변수 a에 어떤 값이 있기때문에 True를 출력한다. 

 

bool()함수가 False를 출력하는 경우는 변수에 값이 0, 0.0 이거나, 빈 컨테이너, None인 경우다.

아래 코드를 보자.

 

a = ""
print(bool(a))

 

변수 a에 어떤 문자도 넣지 않고 큰따옴표로 문자열을 대입하고 bool() 함수에 전달하면 False를 출력하는것을 확인 할 수 있다. 

 

a = []
print(bool(a))

변수 a를 빈 list로 초기화 시키고 bool() 함수에 전달하면 False 를 출력하는것을 확인할 수 있다. tuple, dict 모두 같은 결과를 출력할 것이다.

 

그럼 이걸 어디서 활용할까? 아래 코드를 보자.

a = 10
if a :
    print("변수 a = {}".format(a))
else :
    print("빈 변수입니다.")

 변수 a를 10으로 초기화시키고 if 문에서 조건으로 사용했다. a에 어떤 값이 있기 때문에 파이썬에서는 if문에 조건으로 들어간 a를 bool()함수를 이용해 형변환을 하고 true, false여부를 판단한다. 출력결과는 "변수 a = 10"이다.

 

위 코드를 조금 다르게 바꿔보면

a = 10
if a != 0:
    print("변수 a = {}".format(a))
else :
    print("a는 0입니다.")

a는 0이랑 같지 않기 떄문에 if의 조건을 만족한다. 첫번쨰 코드와 두번째 코드 모두 동일한 결과를 출력하지만, 코드의 가독성면에서는 두번째 코드가 더 좋다고 말할 수 있다. 가급적이면 두번째와 같은 방식으로 코드를 작성하는 것이 모두를 위해 좋을것 같다. 

 

- 끝 -

 

728x90
반응형