독학개념 📖▶️ 파이썬

[파이썬 독학 개념 정리] | ⑤ 데이터 타입 2. 불 자료형 / 관계 연산자 및 논리연산자

코뮤니티 2020. 10. 28. 18:11

기본 개념

1. 파이썬 변수

우리의 코드는 컴퓨터가 연산을 하도록 만드는 것이며, 컴퓨터가 연산을 하기 위해서는 '값'이 필요합니다.

만약 우리가 컴퓨터에게 값을 주지 않으면 " 컴퓨터 ! 이거 계산해봐~ " 라고 말만할 뿐, 무엇을 어떻게 계산하라는 것인지 컴퓨터는 알수 없죠!

여기서의 '값'을 저장하는 것이 '변수'가 하는 역할입니다.

변수를 통해 컴퓨터의 메모리에 값이 저장될 때 비로소 컴퓨터는 우리가 작성한 코드를 바탕으로 연산이 가능해집니다. 따라서 대부분의 프로그래밍 언어에서 변수는 필수 개념이죠!

그렇다면 변수는 어떻게 사용할까요? 변수를 사용하기 위해서는 변수를 선언해 주어야합니다.

파이썬의 장점 중 하나가 변수 선언이 간편하다는 것인데요, 파이썬은 타입추론을 사용하기 때문에 특별한 타입 지정없이 초기값을 할당하면 데이터 타입이 정해지고, 변수가 선언됩니다.

2. 파이썬 데이터 타입(자료형)

'데이터 타입'은 변수에 저장하는 값의 종류를 의미합니다.

예를 들어 변수에 저장되는 값이 1, 2, 3과 같은 숫자의 형태일수 있고, '안녕', 'python'이라는 문자열의 형태일수 있죠.

파이썬(Python)에서는 int(정수), float(실수), complex(복소수), bool(불), str(문자열), list(리스트), tuple(튜플), set(집합, 셋), dict(사전, 딕셔너리)가 있습니다. 이러한 데이터 타입을 이해하기 쉽게 수치자료형, 불자료형, 군집자료형으로 구분하기도 합니다.

  • 수치 데이터 타입 : int, float, complex
  • 불 데이터 타입 : bool (True or False)
  • 군집 데이터 타입 : str, list, tuple, set, dict

다양한 데이터 타입 중 해당 게시물에서는 불 데이터 타입을 확인하고, 이를 사용하는 방법에 대해 알아보겠습니다.

 


파이썬의 데이터 타입 3. 불(Bool)

불(bool)은 이란 참(True)과 거짓(False) 두가지의 값만 가지는 데이터 타입입니다.

불 데이터 타입은 주로 관계 연산자나 비교 연산자의 결과값으로 사용됩니다. 불 데이터 타입 사용시 주의할 점은 True나 False는 파이썬의 예약어이기 때문에 true, false가 아닌 첫 문자를 항상 대문자로 사용해야 한다는 것입니다.

#불 데이터타입 변수 선언 방법 (2가지 경우 뿐입니다)
변수명 = True
변수 명 = False
a = True
b = False

print(a)
print(b)

#결과
True
False

 

 


파이썬 관계 연산자

관계 연산자(Relational Operator)는 피연산자들의 관계를 따져서 불 데이터 타입을 얻는 연산자입니다.

여기서 피연산자란 비교를 하는 변수를 의미하며, 관계는 등가 연산자 ['같다(==)', '다르다(!=)'] 와 비교 연산자 [ '크다(>)', '작다(<)', '크거나 같다(>=)', '작거나 같다(<=)'] 를 합친 모든 상황을 의미합니다.

 

  • 관계 연산자 = 등가 연산자 + 비교연산자
  • 등가 연산자 : '같다(==)', '다르다(!=)'
  • 비교 연산자 : '크다(>)', '작다(<)', '크거나 같다(>=)', '작거나 같다(<=)'

예를 들어, a 와 b가 같은 지를 비교하는 경우를 생각해 봅시다.

피연산자는 a와 b이고, '==' 라는 같다를 의미하는 기호가 관계 연산자가 됩니다. 이때 연산의 결과는 a와 b와 같다면 참(True)을, a와 b가 다르다면 거짓(False)를 반환하게 됩니다.

 


1. 등가 연산자 예시

관계 연산자 사용시 주의할 점은 ==(같다)와 =(대입)가 전혀 다른 의미로 사용된다는 점입니다

  1. == : 관계 연산자, a == 10 의 의미는 [ a과 10이 같다 ] 라는 의미
  2.  = 기호 : 대입 연산자, a = 10의 의미는 [ a에 10을 대입한다 ]는 의미
#변수 정의
a = 1
b = 10
c = "파이썬"

#등가 연산자  같다 예시
print(a == b)
print(a == c)
print(b == c)
print(a == 1)
print(c == '파이썬')

#결과
False
False
False
True
True

#등가 연산자  다르다 예시
print(a != b)
print(a != c)
print(b != c)

#결과
True
True
True


#대입 연산자 예시
a = b
print(b)

#결과 : 원래 10을 담고 있었던 변수 b가 a에게 1을 대입받아 b가 담고 있는 '값이 1로 변환된 결과
1 

2. 비교 연산자 예시

비교 연산자 사용시 주의할 점은 '같은 데이터 타입 끼리만 비교가 가능하다' 라는 점입니다. 예를 들어 정수형 변수와 문자열 변수는 크다, 작다와 같은 비교가 불가능합니다. 이때 발생하는 것이 TypeError: '<' not supported between instances of 'int' and 'str' 라는 오류 입니다.

#변수 정의
a = 1
b = 10
c = "파이썬"

#비교 연산자 예시
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)

#결과
True
True
False
False

#오류 : TypeError: '<' not supported between instances of 'int' and 'str'
print(a < c)

 

 


파이썬 논리 연산자

논리 연산자(Logical Operator)는 피연산자끼리의 관계를 일정한 규칙(and, or, not)으로 따져서 불 데이터 타입을 계산하는 연산자입니다.

연산자(Operator)

설명

예시

and

논리 곱으로, 양쪽 모두 참일 때 참

(a and b) = False

or

논리 합으로, 양쪽 중 한쪽만 참이라도 참

(a or b) = True

not

논리 부정으로, 참과 거짓을 뒤집음

not(a and b) = True

 

#변수 정의
a = 1
b = 10
c = "파이썬"

#and 예시 : 두가지 조건 모두 만족해야만 참(Ture)
print(a > b and a!=c) #a가 b보다 크고(거짓), a가 c와 같지 않다(참). 
print(a < b and a!=c) #a가 b보다 작고(참), a가 c와 같지 않다(참).
print(a > b and a==c) #a가 b보다 크고(거짓), a가 c와 같지 않다(거짓). 

#결과
False
True
False


#or 예시 : 두가지 조건 중 하나만 만족해도 참(True)
print(a > b or a!=c) #a가 b보다 크고(거짓), a가 c와 같지 않다(참). 
print(a < b or a!=c) #a가 b보다 작고(참), a가 c와 같지 않다(참).
print(a > b or a==c) #a가 b보다 크고(거짓), a가 c와 같지 않다(거짓). 

#결과
True
True
False

#not 예시 : 논리 상태를 반전해서 계산
print(not(a > b and a!=c)) # [ a가 b보다 크고(거짓), a가 c와 같지 않다.] 의 반대
print(not((a > b)) or a!=c) # a가 b보다 크지 않고(참), a가 c와 같지 않다.

#결과
True
True