산술연산
1. 산술연산자
1.1 덧셈
덧셈 연산자는 Python의 가장 기본적인 연산자 중 하나입니다. 주로 숫자를 더하는 데 사용되지만, 문자열, 리스트, 튜플 등 다양한 자료형에서도 사용됩니다.
1.1.1 숫자 덧셈
정수와 정수의 덧셈은 정수를 반환합니다. 정수와 실수의 덧셈은 실수를 반환합니다.
1.1.2 문자열 덧셈
문자열에서 덧셈 연산자는 두 문자열을 연결하는 역할을 합니다.
1.1.3 리스트와 튜플의 덧셈
리스트와 튜플에서 덧셈 연산자는 두 객체를 연결합니다.
1.1.4 나아가기
서로 다른 자료형 간의 덧셈은 지원되지 않습니다. 예를 들어, 문자열과 숫자를 직접 더할 수 없습니다.
또한 덧셈이 지원되지 않는 자료형도 있습니다. 딕셔너리와 셋이 그러합니다.
딕셔너리와 셋은 +
대신 |
를 사용하여 결합할 수 있습니다.
1.2 뺄셈
1.2.1 숫자 뺄셈
정수와 정수의 뺄셈은 정수를, 정수와 실수의 뺄셈은 실수를 반환합니다. -
기호는 음수를 표현하는 데도 사용됩니다.
1.2.2 셋의 뺄셈
셋은 +
기호는 지원하지 않지만 -
기호로 차집합을 지원합니다.
이는 아래 메서드와 동일한 결과를 가집니다.
1.2.3 나아가기
서로 다른 자료형 간의 뺄셈은 지원되지 않습니다. 예를 들어, 문자열에서 숫자를 뺄 수 없습니다.
파이썬에서 문자열, 리스트, 튜플 등에서 뺄셈 연산자를 사용하는 것은 지원되지 않습니다. 이러한 데이터 유형에서 항목을 제거하려면 메서드나 슬라이싱 등 다른 방법을 사용해야 합니다.
뺄셈 기호인 대쉬(-
)는 음의 정수를 표현하는 것에도 사용하니 표현에 유의해주세요. 예를 들어 아래와 같은 표현은 유효한 표현입니다.
1.3 곱셈
곱셈 연산자는 주로 숫자에서 사용되지만, 문자열이나 리스트, 튜플에서는 값을 연결시킬 수 있도록 합니다. 딕셔너리나 셋은 지원하지 않습니다. 그 특성을 살펴보면 이해할 수 있습니다. 딕셔너리는 키의 중복이 안되고, 셋은 값에 중복이 안되기 때문에 곱셈 연산을 하는 것이 의미가 없습니다.
1.3.1 숫자의 곱셈
정수와 정수의 곱셈은 정수를, 정수와 실수의 곱셈은 실수를 반환합니다.
1.3.2 문자열과 곱셈
문자열과 정수를 곱하면 해당 문자열이 정수만큼 반복됩니다. 다만 문자열과 실수를 곱하는 것은 지원되지 않습니다.
1.3.3 리스트와 곱셈
리스트와 정수를 곱하면 리스트 내의 요소들이 정수만큼 반복됩니다. 다만 리스트와 실수를 곱하는 것, 리스트와 리스트를 곱하는 것은 지원되지 않습니다.
리스트를 행렬로 취급하여 서로 곱하게 하고 싶다면 numpy와 같은 모듈을 사용할 수 있습니다.
1.4 나눗셈
나눗셈 연산자(/
, //
)는 두 수를 나누는 연산자입니다. 첫번째 나눗셈 연산자는 항상 float
형식으로 반환되며, 두번째 나눗셈 연산자는 항상 int
형으로 반환됩니다. //
는 내림입니다. 음수의 경우 헷갈릴 수 있으니 아래 예제를 통해 확인해주세요.
1.4.1 기본 사용법
정수로 떨어지는 값이라 하더라도 첫번째 연산의 경우 float
형으로 반환된 것을 확인할 수 있습니다. 이번에는 음수를 확인해보도록 하겠습니다.
음수의 경우 두번째 값이 -2로 나올 것이라 예상하셨겠지만 -3이 나온 것을 확인할 수 있습니다. 이는 //
연산이 내림이기 때문에 그렇습니다.
1.4.2 나아가기
나누기의 경우 0으로 나누면 아래와 같은 에러가 발생합니다. 이는 수학적으로 0으로 나누는 것이 정의되지 않았기 때문입니다.
z = 0
x / z # ZeroDivisionError 발생
z = 0
x / z # ZeroDivisionError 발생
또한 float 형으로 반환되는 경우 아래처럼 소숫점 2번째 자리까지 출력하는 구문을 많이 사용하니 기억해두세요.
1.5 나머지 연산자
나머지 연산자(%
)는 한 숫자를 다른 숫자로 나누었을 때의 나머지를 반환하는 연산자입니다. 이 연산자는 특히 비교 연산자와 함께 사용하여 값이 나누어 떨어지는지 확인할 때 많이 사용합니다.
1.5.1 기본 사용법
10을 3으로 나누면 몫이 3이고 나머지가 1입니다. 따라서 1을 출력합니다.
1.5.2 활용 예시
10 % 2 == 0 # 홀수, 짝수 판별
365 % 10 == 0 # 1의 자리 반환
10 % 2 == 0 # 홀수, 짝수 판별
365 % 10 == 0 # 1의 자리 반환
위와 같이 나머지 연산은 홀수와 짝수를 판별하거나 특정 자리 수를 반환하거나, 특정 주기마다 코드를 실행시킬 경우 등에 주로 사용합니다.
1.6 거듭제곱 연산자
거듭제곱 연산자(**
)는 특정 숫자를 다른 숫자의 승수만큼 곱하는 연산자입니다.
1.6.1 기본 사용법
위 연산 결과는 10 * 10 * 10
과 같습니다.
위 연산 결과는 4의 1/2승과 같습니다. 제곱근을 구하는 것이고, 루트를 씌운 결과와 같습니다.
1.6.2 나아가기
위와 같은 연산은 당연히 4가 될 것 같지만 -4가 정답입니다. -부호가 나중에 붙기 때문입니다. 이를 해결하기 위해 아래와 같이 음수는 괄호로 묶어야 합니다.
음수를 제곱할 때는 결과가 복소수가 될 수 있습니다.
2. 전/후위 연산자
다른 프로그래밍 언어에서 일반적으로 지원하는 전/후위 연산자가 파이썬에는 존재하지 않습니다. 전/후위 연산자는 아래와 같이 연산되는 것입니다. a에 1이 추가됩니다.
a = 10
++a
a++
a = 10
++a
a++
이처럼 다른 언어에 일반적으로 있는 연산자가 파이썬에서는 없는 경우가 있습니다. 이러한 용법이 없으므로 보다 간결한 문법을 지향할 수 있으며 혼란을 줄일 수 있습니다.
예를 들어 이런 전/후위 연산자가 있는 JavaScript의 경우 일부 대기업의 코딩 가이드라인에서는 혼란을 피하기 위해 사용을 권장하지 않는 경우가 있습니다. 코드의 명확성과 정확성을 위해서입니다.
airbnb/javascript: JavaScript Style Guide