연산자(Operators)

2025. 3. 21. 07:14Programming Languages/Python

연산자(Operators)

연산자는 데이터를 조작하는 기호입니다. 이것은 마치 수학에서 +, -, ×, ÷ 기호를 사용하는 것과 비슷합니다.

산술 연산자

산술 연산자는 기본적인 수학 연산을 수행합니다.

a = 10
b = 3

print(a + b)    # 13 - 덧셈
print(a - b)    # 7 - 뺄셈
print(a * b)    # 30 - 곱셈
print(a / b)    # 3.3333... - 나눗셈 (결과는 항상 실수)
print(a // b)   # 3 - 정수 나눗셈 (소수점 이하 버림)
print(a % b)    # 1 - 나머지 (10을 3으로 나눈 나머지)
print(a ** b)   # 1000 - 제곱 (10의 3승)

# 복합 대입 연산자
c = 5
c += 2      # c = c + 2와 같음
print(c)    # 7
c *= 3      # c = c * 3와 같음
print(c)    # 21

산술 연산자는 일상적인 수학 계산과 매우 비슷합니다. 특히 알아두면 좋은 것은:

  • /는 항상 실수 결과를 반환합니다 (예: 5 / 2 = 2.5)
  • //는 정수 나눗셈으로, 소수점 이하를 버립니다 (예: 5 // 2 = 2)
  • %는 나머지 연산자로, 첫 번째 수를 두 번째 수로 나눈 나머지를 반환합니다.
  • **는 거듭제곱 연산자입니다.

비교 연산자

비교 연산자는 두 값을 비교하고 불리언(True/False) 결과를 반환합니다.

x = 5
y = 10

print(x == y)   # False - 같음
print(x != y)   # True - 다름
print(x > y)    # False - 큼
print(x < y)    # True - 작음
print(x >= y)   # False - 크거나 같음
print(x <= y)   # True - 작거나 같음

# 연속 비교
age = 25
print(18 <= age <= 30)  # True - age가 18 이상 30 이하인지

비교 연산자는 두 값을 비교하여 True 또는 False를 반환합니다. 이것은 조건문에서 매우 유용합니다.

이러한 비교 연산자는 조건문(if 문)에서 자주 사용됩니다. 각 연산자는 두 값의 관계를 확인하고, 그 결과로 True나 False를 반환합니다.

논리 연산자

논리 연산자는 불리언 값을 결합하여 논리적 판단을 내리는 데 사용됩니다.

p = True
q = False

print(p and q)  # False - 논리곱(AND): 둘 다 True여야 True
print(p or q)   # True - 논리합(OR): 하나라도 True면 True
print(not p)    # False - 논리부정(NOT): True를 False로, False를 True로

# 복합 논리식
a = 5
b = 10
c = 15
print((a < b) and (b < c))  # True - 두 조건이 모두 참
print((a > b) or (b < c))   # True - 하나의 조건이 참

논리 연산자는 불리언 값을 조합하는 데 사용됩니다:

  • and: 양쪽 모두 True일 때만 True
  • or: 적어도 하나가 True이면 True
  • not: True를 False로, False를 True로 바꿈

논리 연산자는 여러 조건을 조합하여 복잡한 조건식을 만들 때 유용합니다

age = 25
income = 3000000

# 나이가 20세 이상이고 소득이 300만원 이상인 경우
is_eligible = (age >= 20) and (income >= 3000000)  # True

# 나이가 60세 이상이거나 18세 미만인 경우
is_special_rate = (age >= 60) or (age < 18)  # False

할당 연산자 (Assignment Operators)

할당 연산자는 변수에 값을 할당하는 데 사용됩니다.

# 기본 할당 연산자
x = 10  # x에 10 할당

# 복합 할당 연산자
x += 5   # x = x + 5와 동일 (x는 이제 15)
x -= 3   # x = x - 3와 동일 (x는 이제 12)
x *= 2   # x = x * 2와 동일 (x는 이제 24)
x /= 4   # x = x / 4와 동일 (x는 이제 6.0)
x //= 2  # x = x // 2와 동일 (x는 이제 3.0)
x %= 2   # x = x % 2와 동일 (x는 이제 1.0)
x **= 3  # x = x ** 3와 동일 (x는 이제 1.0)

복합 할당 연산자는 코드를 더 간결하게 만들어 줍니다. 예를 들어, x = x + 5 대신 x += 5로 작성할 수 있습니다.

멤버십 연산자 (Membership Operators)

멤버십 연산자는 시퀀스(문자열, 리스트 등)에 값이 존재하는지 확인합니다.

fruits = ["사과", "바나나", "체리"]
text = "파이썬 프로그래밍"

# in 연산자: 값이 시퀀스에 존재하는지 확인
print("사과" in fruits)     # True
print("오렌지" in fruits)   # False
print("파이썬" in text)     # True

# not in 연산자: 값이 시퀀스에 존재하지 않는지 확인
print("망고" not in fruits)  # True
print("프로그래밍" not in text)  # False

멤버십 연산자는 특히 리스트, 튜플, 문자열 등의 컬렉션에서 특정 값을 검색할 때 유용합니다.

식별 연산자 (Identity Operators)

식별 연산자는 두 객체가 같은 메모리 위치를 가리키는지 확인합니다.

x = ["사과", "바나나"]
y = ["사과", "바나나"]
z = x  # z와 x는 같은 객체를 참조

# is 연산자: 두 변수가 같은 객체를 참조하는지 확인
print(x is z)  # True
print(x is y)  # False (내용은 같지만 다른 객체)

# is not 연산자: 두 변수가 다른 객체를 참조하는지 확인
print(x is not y)  # True

is 연산자와 == 연산자의 차이점을 이해하는 것이 중요합니다:

  • is는 두 변수가 메모리에서 같은 객체를 가리키는지 확인합니다.
  • ==는 두 변수의 값이 같은지 확인합니다.