타리스만

파이썬 나누기 (/ , // , %, divmod) 비교연산자 ==와 =, is의 차이

처음 기초단계를 공부할 때 확실하게 개념을 잡아두어야 나중에 프로그래밍 실습을 하면서 헷갈려서 다시 보는 일이 없을 듯 하다.

 

파이썬 사칙연산 중 나누기 방법과 divmod() 함수의 사용방법, 그리고 비교연산자의 종류와 = , == 의 차이에 대해 알아본다.


파이썬 나누기 방법

🔺 파이썬에서 나누기에는 세 가지 방법이 있다

a/b = 소수점까지 나누기 결과를 보여줌

a//b = 정수 부분의 몫만 보여줌

a%b = 나누기 했을때 나머지 값을 보여줌

 

🔺 divmod 함수를 이용하여 나눌 수와 나누는 수를 같이 입력하면 결과로 몫과 나머지가 함께 출력된다. () 괄호 형태의 튜플 값으로 나온다.

 

# 나누기 기호 / 사용 
# 소수점 포함한 실수 형태로 결과 출력
입력 : 7/4
결과 : 1.75

# 나누기 기호 // 사용 
# 정수 몫만 출력
입력 : 7//4
결과 : 1

# 나누기 기호 % 사용 
# 정수 나머지 값만 출력
입력 : 7%4
결과 : 3

# divmod 함수 사용 
# 정수 몫과 나머지를 각각 출력
입력 : divmod(7,4)
결과 : (1, 3)

 

 

제곱

🔺 제곱하는 방법도 두가지가 있는데 2^8을 계산하고 싶으면

2**8 또는 pow(2,8) 함수를 이용해서 입력한다.


비교연산자 <=

 

🔺 비교연산자 사용시 <= 형태로 등호가 오른쪽에 와야한다. 작거나 같다 순서로 표시할것

예시 이미지와 같이 =< 형태로 입력하면 문법 에러가 발생한다.

>= 입력할때도 마찬가지이다.


=과 ==의 차이

🔺 = 기호는 변수를 지정할 때 사용한다. 파이썬에서 변수 지정이란, 특정한 메모리 주소를 나타내는 변수값에 (도로명 주소) 어떠한 데이터를 입력해 놓는다는 의미이다. 

즉 위에서 어떤 메모리 주소값에 a라는 라벨을 붙이고 거기에 숫자 3을 데이터로 입력하였다. 그리도 b에는 5를 할당한 후 

a=b를 하면 b의 데이터를 a의 주소에 덮어씌운다. 그 결과 마지막에 5가 출력됨을 알 수 있다.

 

= : 메모리 주소에 데이터를 입력하는 기호

 

🔺 반면에 == 이것은 비교연산자이다. 즉 같은지 다른지를 판단하라는 명령을 수행한다.

a와 b가 모두 3일때 두 개의 값은 같으므로 a==b 결과는 True로 출력된다.

 

🔺 is는 비슷하지만 조금 다르다.

a랑 b는 변수명이 다른데 왜 True라고 나올까?

 

이것은 메모리 주소가 같은지를 판단하는 비교연산자이다. 

 

🔺 이렇게 id 함수를 이용해서 확인해보면 a, b 변수가 가리키는 메모리 주소값을 확인할 수 있는데 두 개가 같음을 알 수 있다. 파이썬에서 동일한 데이터 값을 두 번 입력하면 별개로 저장하지 않고 하나의 메모리에 저장하면서 효율을 높이는 것이다.

 

따라서 a와 b가 가리키는 메모리 주소가 같으므로 a is b 는 True로 반환된다.

 

🔺 반면에 이 예시를 보면 a b를 각각 리스트로 지정하였다. 이 경우에는 별개의 메모리 주소에 할당을 하게 되는데, 따라서 값이 같더라도 a is b는 False로 반환된다.

 

즉 비교연산자에서

== 기호는 값을 비교하고

is 는 메모리 주소를 비교

하는 것을 알 수 있다.

그리드형

블로그의 정보

TALI's Mandarin

타리의 중국어 교실

활동하기