[Python] 연산자

Sam Kim·2022년 6월 29일
0

연산자(Operator)

연산 실행에 있어서 여러 식이나 값에 수학적·논리적인 움직임, 즉 어떤 연산을 할 지 지정하는 것.

피연산자

연산의 대상이 되는 것

연산자 종류

산술 연산자: +, -, *, /, %, //, **

할당 연산자: =, +=, -=, *=, /=, %=, //=

비교 연산자: >, >=, <, <=, ==, !=

논리 연산자: and, or, not

뎃셈(+)

int + int = int

float + float = float

int + float = float

str + str = str

  • str + 숫자(int or float)는 불가

뺄셈(-)

int - int = int

float - float = float

int - float = float

  • str - str 은 불가
  • str - 숫자(int or float) 불가

곱셈(*)

int * int = int

float * float = float

int * float = float

str * int = str (str 내용을 int 수 만큼 반복)

  • str * str 은 불가
  • str * float 은 불가

나눗셈(/)

int / int = float

float / float = float

int / float = float

float / int = float

  • 즉, 나눗셈 결과는 항상 float
  • str / str 불가
  • str / 숫자(int or float) 불가
  • 숫자(int or float) / str 불가
  • / 0 불가 (0으로 나누면 에러 발생)

나눗셈 후 나머지(%)

[입력]

a = 10
b = 3
result1 = a / b
result2 = a % b

print(result1, type(result1))
print(result2, type(result2))

[출력]

3.3333333333333335 <class 'float'>
1 <class 'int'>

나눗셈 후 몫(//)

[입력]

a = 10
b = 3
result1 = a / b
result2 = a // b

print(result1, type(result1))
print(result2, type(result2))

[출력]

3.3333333333333335 <class 'float'>
3 <class 'int'>
  • 나머지와 몫을 한번에 구하는 함수: divmod()

거듭제곱(**)

[입력]

a = 2 * 2 * 2 * 2
b = 2 ** 4

print(a,"/", b)

[출력]

16 / 16
  • 제곱근 구하기

[예시] n ** (1/m) [n의 m제곱근 구하기]

[입력]

a = 2 ** 8
b = 2 ** 4
c = 2 ** 2

n = 256
m2 = 256 ** (1/2)
m4 = 256 ** (1/4)
m8 = 256 ** (1/8)

print(a, b, c, sep=" / ")
print(m2, m4, m8, sep=" / ")

[출력]

256 / 16 / 4
16.0 / 4.0 / 2.0
  • math 모듈의 sqrt() 와 pow() 함수를 이용해 각각 제곱근, 제곱을 구할 수 있다 (TBU)

할당(대입) 연산자: =

오른쪽의 값을 왼쪽에 할당(대입)

[예시]

a = b

→ b를 a에 할당(대입)

  • a == b → a 는 b

  • [=] 과 [==]는 다름!

복합 연산자

a [산술 연산자]= x

→ a = a [산술 연산자] x

→ "=" 좌측 값(a)과 우측 값(x)을 [산술 연산자]로 연산 후 다시 좌측 값(a)으로 할당(대입)

[예시]

a = 10 일 때,

  • a += 10 → a = a + 10 == 20
  • a -= 10 → a = a - 10 == 0
  • a = 10 → a = a 10 == 100
  • a /= 10 → a = a / 10 == 1
  • a %= 3 → a = a % 3 == 1
  • a //= 3 → a = a // 3 == 3
  • a = 2 → a = a 2 == 100

비교 연산자

좌측 값과 우측 값 사이를 비교 연산하여 참, 거짓을 확인

→ 연산 결과는 논리형(bool), 즉 True or False

[예시] 숫자 비교 연산
[입력]

a = 1
b = 2

print("{} < {} : {}".format(a, b, a < b))
print("{} <= {} : {}".format(a, b, a <= b))
print("{} > {} : {}".format(a, b, a > b))
print("{} >= {} : {}".format(a, b, a >= b))
print("{} == {} : {}".format(a, b, a == b))
print("{} != {} : {}".format(a, b, a != b))

[출력]

1 < 2 : True
1 <= 2 : True
1 > 2 : False
1 >= 2 : False
1 == 2 : False
1 != 2 : True

[예시] 아스키 코드를 이용한 문자 비교 연산 (아스키 코드표 링크나 사진 추가 예정)

[입력]

# 아스키 코드 비교 연산

a = "A" # 아스키 코드 A는 십진법 숫자 65에 해당
b = "B" # 아스키 코드 B는 십진법 숫자 66에 해당

print("{} < {} : {}".format(a, b, a < b))
print("{} <= {} : {}".format(a, b, a <= b))
print("{} > {} : {}".format(a, b, a > b))
print("{} >= {} : {}".format(a, b, a >= b))
print("{} == {} : {}".format(a, b, a == b))
print("{} != {} : {}".format(a, b, a != b))

[출력]

A < B : True
A <= B : True
A > B : False
A >= B : False
A == B : False
A != B : True

0개의 댓글