[Python] 연산자

심진주·2025년 2월 5일

Python

목록 보기
4/5
post-thumbnail

1. 연산자의 종류

연산자의 종류

  • 연산자
    • 프로그램에서 연산을 수행하기 위하여 사용되는 특수 기호
종류설명
대입연산자변수에 숫자나 문자열 등의 자료를 대입하거나 연산 결과를 다른 변수에 할당
산술 연산자더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%)
단항 연산자어떤 변수에 대한 연산 결과를 다시 변수 자신에게 적용
비교 연산자
(관계 연산자)
두 개의 변수값 간의 관계를 비교하여 참(1)이나 거짓(0)의 결과를 반환
논리 연산자좌변과 우변을 논리연산하고, 참일때는 1, 거짓일때는 0을 반환

대입 연산자

  • 대입 연산자(=)는 좌변에 우변을 대입
    • 수학은 같다라는 의미지만 프로그래밍에서는 대입한다라는 의미로 사용
  • 변수에 값을 대입하는 경우 - 일반적인 변수의 초기화 과정
pi = 3.14
money = 12000
  • 변수에 다른 변수를 대입하는 경우 - 다른 변수의 값이 복사
a = 3
b = a
  • 변수의 값 교환 (swap 처리)
a = 1
b = 2
a, b = b, a # a와 b의 값이 교환

대입 연산자를 활용한 swap 처리

  • 변수간의 데이터 맞교환
a = 1
b = 2
print(a)
print(b)

a,b = b,a
print(a)
print(b)

산술 연산자

  • 일반적인 사칙 연산
    • 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/, //, %)
    • 사칙연산의 결과는 대입연산자를 통해 다른 변수에 대입될 수 있다.
    • 정수와 실수의 연산 시에는 정수가 실수 형태로 변환되어 처리되기 때문에 결과는 실수가 된다.
    • 모든 수는 0으로 나눌 수 없다.
연산자설명예시결과
+덧셈 (Addition)3 + 25
-뺄셈 (Subtraction)5 - 32
*곱셈 (Multiplication)4 * 312
**거듭제곱 (Exponentiation)2 ** 38
/나눗셈 (Division, 결과는 항상 float)
나눗셈의 몫을 계산하기 위해 소수점 자리까지 계속 연산을 수행하다가 프로그램이 처리할 수 없는 자리수까지 진행되면 오차를 발생시킴
7 / 23.5
//몫 연산 (Floor Division, 나눗셈 후 소수점 버림)7 // 23
%나머지 연산 (Modulo, 나눗셈의 나머지)7 % 21

산술 연산자 사용하기

  • 산술 연산자의 결과를 다른 변수에 할당하여 출력하거나 직접 출력할 수 있다.
# 연산 결과는 새로운 변수에 할당 하거나 직접 출력 가능
a = 3
b = 4
c = a + b
print(c)
7
# 연산결과 직접 출력
print( a - b )
print( a * b )
print( a / b )
-1
12
0.75

나눗셈과 거듭제곱

  • 나눗셈
# 나눗셈의 몫을 구한다
# -> 처리 가능한 단위까지 계산함(마지막 오차발생)
print( 10 / 3 )
3.3333333333333335
# 나눗셈에서 소수점 아래를 버리고 몫만 계산
print( 10 // 3 )
3
# 나눗셈의 나머지를 구한다.
# -> 정수 단위에서만 연산 후 종료
print( 10 % 3 )
1
  • 거듭제곱
# 거듭제곱
print( 3 ** 5 )
243

단항 연산자

  • 단항 연산자
    • 어떤 변수의 연산 결과를 다시 그 변수 자신에게 대입하고자 할 경우 약식 표현
x = 100
x = x + 5

## 단항 연산자 적용
x = 100
x += 5
  • 단항 연산자는 모든 사칙 연산자에게 표현 가능
  • +=, -=, *=, /=, //=, %=
 # 단항 연산자
a = 1
a += 100    # 100 + 1 -> 101
a *= 10     # 101 * 10 -> 1010
a //= 3     # 1010 // 3 -> 336
a %= 5      # 336 % 5 -> 1
print(a)
1

비교 연산자

의미연산자예시결과
같다== 혹은 is5 == 5 / a is b (a = b = [1, 2, 3])True
다르다!= 혹은 is not5 != 3 / a is not b (a = [1, 2, 3]; b = [1, 2, 3])True
초과>7 > 3True
이상>=4 >= 4True
미만<2 < 5True
이하<=6 <= 10True
print(100 == 50)
print(100 != 50)
print(100 > 50)
print(100 < 50)
print(100 >= 50)
print(100 <= 50)
False
True
True
False
True
False
# 비교연산도 하나의 수식이므로 결과를 다른 변수에 할당 가능함
rerult = 100 > 50
print(rerult)
True

논리 연산자

  • 논리 연산자
    • 여러 비교 연산자의 결과나 논리값에 대해 ANDOR 연산을 수행하여 결과를 얻는다.
  • AND
    • 모두 참일 때만 결과가 참
  • OR
    • 하나라도 참이어도 결과가 참
# 논리연산자 (AND) --> 전체가 True인 경우만 결과값이 True
print(True and True)
print(True and False)
print(False and True)
print(False and False)
True
False
False
False
# 논리연산자 (OR) --> 하나만 True여도 결과값이 True
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
  • NOT 연산자
    • boolean 형의 변수를 부정
    • True나 False를 부정하여 반대의 결과를 얻음
# 논리연산자 (NOT) --> 결과값을 반대로 출력
print(not True)
print(not False)
False
True

비교 연산과 논리 연산의 결합

# 비교연산의 결과값은 bool 타입이므로 논리연산에 사용 가능
a = 100 > 50  # True
b = 20 > 10   # True
print(a and b)
True
c = 100 >= 100 and 50 == 10
print(c)
False
print( 100 != 200 and 100 == 100)
True

완전 항등 연산자 is

  • 항등 연산자 ==,!=
    • 데이터 타입에 상관없이 두 변수의 내용이 일치하면 True
print(1 == 1.0)    # True
print(1 != 1.0)    # False
  • 완전 항등 연산자 is, not is
    • 데이터 타입까지 완전히 일치해야 True
print(1 is 1.0)      # False
print(1.0 != 1.0)    # True
print(1 != 1.0)      # True

연산자 우선 순위

순위연산자설명예시
1()괄호: 가장 높은 우선순위(3 + 2) * 4 → 20
2**거듭제곱2 ** 3 → 8
3+x, -x, ~x단항 연산자 (양수, 음수, 비트 반전)-5 → -5, ~2 → -3
4*, /, //, %곱셈, 나눗셈, 몫, 나머지10 / 2 → 5.0, 7 % 3 → 1
5+, -덧셈, 뺄셈5 + 3 → 8, 10 - 4 → 6
6<<, >>비트 이동 연산자4 << 1 → 8
7&비트 AND5 & 3 → 1
8^비트 XOR5 ^ 3 → 6
9``비트 OR
10==, !=, >, <, >=, <=, is, is not, in, not in비교 및 항등 연산자5 > 3 → True, [1, 2] is [1, 2] → False
11not논리 NOTnot True → False
12and논리 ANDTrue and False → False
13or논리 ORTrue or False → True
14`=, +=, -=, *=, /=, //=, %=, **=, &=,=, ^=, >>=, <<= `할당 연산자
  • AND가 OR보다 우선인 점 주의

0개의 댓글