[Python] 산술 연산자 다양한 예제를 통해 이해하기

Python은 다양한 산술 연산자를 제공한다. 이 연산자들은 수학적 및 논리적 연산의 기본적인 구성 요소이다. 이 글에서는 주요 산술 연산자들을 자세히 살펴보고, 각 연산자에 대한 예제 코드를 제공하며, 그들의 기능을 명확히 설명할 것이다.

덧셈 (+)

덧셈 연산자는 +로 표시되며 가장 기본적인 산술 연산 중 하나이다. Python에서 덧셈 연산자는 숫자뿐만 아니라 문자열과 리스트에도 사용할 수 있다. 숫자와 함께 사용하면 그 값을 합산한다. 문자열에 적용할 경우, 해당 문자열들을 연결한다. 리스트에 대해서는 그들을 병합한다.

python
# 숫자 덧셈
a = 5
b = 3
print(a + b)                 
# 결과: 8

# 문자열 연결
str1 = "Hello"
str2 = "World"
print(str1 + " " + str2) 
# 결과: Hello World

# 리스트 병합
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2)         
# 결과: [1, 2, 3, 4, 5, 6]

뺄셈 (-)

뺄셈 연산자는 -로 표현되며, 한 값에서 다른 값을 뺀다. 이 연산자는 주로 숫자 값에 사용된다. 그러나 Python에서는 문자열이나 리스트와 같은 다른 데이터 유형에 대한 뺄셈 연산을 지원하지 않는다. 뺄셈 연산자를 사용할 때 두 피연산자가 숫자 데이터 유형(정수 또는 부동 소수점)인지 확인하는 것이 중요하다.

python
# 숫자 뺄셈
x = 10
y = 4
print(x - y)                
# 결과: 6

# 문자열에서의 뺄셈 시도 (이 경우 오류 발생)
str3 = "abc"
str4 = "a"
print(str3 - str4)         
# TypeError: '-' 연산자에 대한 피연산자 유형이 지원되지 않는다.

곱셈 (*)

곱셈 연산자는 *로 나타나며 두 숫자를 함께 곱한다. Python은 숫자 외에도 문자열과 리스트에 대한 곱셈 연산을 지원한다. 문자열과 정수에 적용하면 지정된 정수 횟수만큼 문자열을 반복한다. 마찬가지로 정수로 리스트를 곱하면 해당 내용을 복제하여 요소가 반복된 새 리스트를 생성한다. 그러나 Python에서는 두 문자열이나 두 리스트를 직접 곱하는 것은 지원되지 않는다.

python
# 숫자 곱셈
p = 7
q = 6
print(p * q)
# 결과: 42

# 문자열 반복
str5 = "반복 "
print(str5 * 3)
# 결과: 반복 반복 반복 

# 리스트 반복
list3 = [1, 2]
print(list3 * 3)
# 결과: [1, 2, 1, 2, 1, 2]

나눗셈 (/)

나눗셈 연산자는 /로 표현되며 한 숫자를 다른 숫자로 나눈다. Python 3.x에서는 결과가 정수인지 여부와 관계없이 / 연산자는 항상 부동 소수점 숫자를 반환한다. 이는 일관된 반환 유형을 보장하며 결과를 더 예측 가능하게 만든다. 그러나 0으로 나누는 것에 대해서는 주의해야 한다. 이런 경우 ZeroDivisionError가 발생한다.

python
# 숫자 나눗셈
m = 8
n = 2
print(m / n)
# 결과: 4.0

# 0으로 나누기 시도 (오류 발생)
z = 0
print(m / z)
# ZeroDivisionError: 0으로 나눌 수 없다.

나머지 (%)

나머지 연산자는 %로 표시되며 나눗셈 연산의 나머지를 반환한다. 이 연산자는 어떤 숫자가 짝수인지 홀수인지를 판별하는데 주로 사용된다. 모든 숫자에 2를 나눈 나머지는 짝수의 경우 0, 홀수의 경우 1이 된다. 이 연산자는 순환적 또는 반복적 프로세스가 필요한 많은 알고리즘 상황에서 또는 특정 범위 내에서 값이 순환하도록 보장해야 할 때 매우 유용한다.

python
# 숫자 나머지
u = 10
v = 3
print(u % v)
# 결과: 1

몫 연산 (//)

//로 표현되는 몫 연산자는 한 숫자를 다른 숫자로 나누고, 그 결과를 가장 가까운 정수로 내림하여 반환한다. 즉, 소수점 이하를 버리고 몫만을 반환한다. 배열 인덱싱이나 특정 수학 알고리즘을 수행할 때 정수 결과가 필요할 때 특히 유용한다.

python
# 숫자 몫 연산
s = 10
t = 3
print(s // t)
# 결과: 3

거듭제곱 (**)

**로 나타나는 거듭제곱 연산자는 한 숫자를 다른 숫자의 제곱으로 계산한다. 이 연산자는 파이썬에서 제곱 연산을 수행하는 방법이다. 양수 및 음수 지수를 모두 처리할 수 있다. 양수 지수의 경우, 기본 숫자가 지수에 지정된 횟수만큼 자기 자신과 곱해집니다. 음수 지수의 경우, 파이썬은 기본값의 역수를 지수의 절댓값으로 계산하여 역 제곱을 효과적으로 계산한다.

python
# 숫자 거듭제곱 연산
i = 2
j = 3
print(i ** j)
# 결과: 8

# 음수 지수
k = -2
print(i ** k)
# 결과: 0.25

FAQs

  1. 모듈러 연산자는 프로그래밍 시나리오에서 어떻게 유용할 수 있나요?
    • 모듈러 연산자는 짝수나 홀수를 판별하거나 순환 데이터 구조를 형성하고 알고리즘에서 경계를 설정하는 데 편리한다.
  2. 한 번의 연산으로 몫과 나머지를 모두 어떻게 얻을 수 있나요?
    • divmod() 함수를 사용하면 된다. 예를 들면, divmod(10, 3)(3, 1)을 반환하는데, 여기서 3은 몫이고 1은 나머지이다.
  3. 문자열 곱셈과 리스트 곱셈에서 *를 사용하는 데 차이점이 있나요?
    • 기본적으로는 아니다. 두 연산 모두 원본 내용을 반복한다. 예를 들어, 'a' * 3'aaa'를 반환하고, [1, 2] * 3[1, 2, 1, 2, 1, 2]를 반환한다.
  4. 왜 두 리스트를 직접 빼면 안 되나요?
    • 숫자와 달리, 리스트는 잘 정의된 뺄셈 연산이 없다. 차이와 같은 연산을 달성하기 위해서는 사용자 정의 함수를 구현하거나 리스트 내포 (list comprehensions)를 사용해야 한다.
  5. 파이썬에는 다른 산술 관련 모듈이나 라이브러리가 있나요?
    • 네, 파이썬은 이러한 산술 연산자와 함께 사용할 수 있는 수학 함수와 상수가 포함된 math 모듈을 제공한다.
© Copyright 2023 CLONE CODING