Menu

파이썬 연산자: 산술, 비교, 논리, 멤버십, 동일성

파이썬 연산자 한 바퀴 — 산술, 비교, 논리, 할당, 멤버십, 동일성 — 각각의 예제와 함께 둘러봅니다.

연산자는 행동을 나타내는 기호예요

연산자는 한두 개의 값을 가지고 뭔가 하라고 파이썬에게 알려주는 기호(또는 짧은 키워드)예요 — 더해라, 비교해라, 한쪽이 다른 쪽을 품고 있는지 봐라, 이런 거요. 기본적인 수학에서 이미 몇 개는 알고 계실 텐데, 파이썬은 논리·포함·동일성용으로 몇 개를 더 가지고 있어요.

주요 범주를 하나씩 살펴볼게요.

산술 연산자

표준 수학 연산자들과 파이썬 고유의 몇 가지:

main.py
Output
Click Run to see the output here.

이 목록에서 잊기 쉬운 두 가지:

  • /는 양쪽이 정수여도 float을 돌려줘요. 10 / 25.0이 나옵니다. 정수 나눗셈이 필요하면 //를 쓰세요.
  • %는 나머지예요. n이 짝수인지 가장 깔끔하게 검사하는 방법은 n % 2 == 0이에요.

파이썬은 일반적인 수학 우선순위를 따릅니다. ***, /보다 강하게 묶이고, 그 둘이 +, -보다 강해요. 괄호가 모든 것보다 우선합니다:

main.py
Output
Click Run to see the output here.

조금이라도 헷갈린다면 괄호를 넉넉히 쓰세요. 비용은 없고, 의도가 분명해집니다.

비교 연산자

여섯 가지 비교, 각각 불리언을 반환해요:

main.py
Output
Click Run to see the output here.

파이썬은 비교를 _체이닝_할 수 있게 해줍니다. 흔치 않으면서 유용해요:

main.py
Output
Click Run to see the output here.

"age가 18 이상이고 65 미만이다"로 읽힙니다. 내부적으로는 18 <= age and age < 65와 같지만 수학 문법 쪽에 더 가까워요.

논리 연산자

기호 대신 영어 단어로 씁니다:

main.py
Output
Click Run to see the output here.

알아둘 만한 세부사항 두 가지:

단축 평가(short-circuit). and는 첫 번째 falsy 값에서 멈추고, or는 첫 번째 truthy 값에서 멈춰요. 왼쪽에서 결과가 이미 결정되면 오른쪽은 평가되지도 않습니다. 덕분에 에러를 안전하게 막을 수 있어요:

main.py
Output
Click Run to see the output here.

and/or는 꼭 True/False가 아니라 값을 돌려줘요. 결과를 결정한 피연산자를 그대로 돌려줍니다:

main.py
Output
Click Run to see the output here.

실무 코드에서 name = user_input or "anonymous" 같은 걸 보게 될 거예요 — 이 동작에 기반한 기본값 패턴이에요.

할당 연산자

=은 할당해요. 복합 할당은 연산과 할당을 합친 거고요:

main.py
Output
Click Run to see the output here.

복합 형태는 문자열(s += "more")과 리스트(lst += [4, 5])에서도 동작해요. 원래 형태보다 빠르지는 않아요 — 그저 짧을 뿐입니다.

멤버십: innot in

어떤 컨테이너 안에 값이 있는지 검사합니다:

main.py
Output
Click Run to see the output here.

in은 어떤 이터러블에서도 동작해요 — 리스트, 튜플, 집합, 문자열, 딕셔너리 등등. 큰 데이터에서 리스트에 대한 in은 O(n), 집합이나 딕셔너리에 대한 in은 O(1)입니다. 멤버십 검사를 여러 번 할 때부터는 이 차이가 의미 있어집니다.

동일성: isis not

is는 두 변수가 값이 같은지가 아니라 _메모리 상 같은 객체_를 가리키는지를 검사합니다:

main.py
Output
Click Run to see the output here.

거의 언제나 ==가 맞아요. is가 진짜 빛나는 유일한 곳은 None, True, False와의 비교입니다:

main.py
Output
Click Run to see the output here.

커뮤니티 관례는 확고해요. == None이 아니라 is None을 쓰세요. is True도 마찬가지고요(이건 쓸 일이 많지는 않아요).

비트 연산자 (처음엔 건너뛰어도 돼요)

파이썬에는 비트 연산자도 있어요 — &, |, ^, ~, <<, >> — 정수의 개별 비트를 다루는 용도예요. 암호학, 저수준 네트워킹, 특정 알고리즘에서 유용합니다. 처음 한 바퀴에서는 건너뛰어도 무방해요.

왈러스 연산자 (:=)

Python 3.8에서 :=이 추가됐어요. 한 표현식 안에서 값을 할당함과 동시에 돌려주는 연산자예요. 결과를 잡아두면서 동시에 검사하고 싶은 조건문에 유용합니다:

main.py
Output
Click Run to see the output here.

왈러스가 없었다면 len(numbers)를 두 번 부르거나 줄을 하나 더 써야 했을 거예요. 필수는 아니고, 중복을 줄여주는 자리에서만 쓰세요.

연산자 우선순위 치트시트

실제로 쓰게 될 연산자들을 강한 결합부터 약한 결합 순으로:

  1. ** — 거듭제곱
  2. *, /, //, % — 곱셈과 나눗셈
  3. +, - — 덧셈과 뺄셈
  4. <, <=, >, >=, ==, != — 비교
  5. not
  6. and
  7. or

헷갈리면 괄호를 치세요. 명확함이 똑똑함을 이깁니다.

제어 흐름으로 이동

이제 연산자를 익혔으니 조건을 쓸 수 있어요. 다음 페이지는 if/elif/else입니다 — 연산자가 알려주는 값에 따라 프로그램이 이 길을 갈지 저 길을 갈지 결정하게 해주는 구조예요.

자주 묻는 질문

파이썬의 주요 연산자 종류는 뭐가 있나요?

산술(+, -, *, /, //, %, **), 비교(==, !=, <, <=, >, >=), 논리(and, or, not), 할당(=, +=, -=, …), 멤버십(in, not in), 동일성(is, is not) 이 있어요.

파이썬에서 ==과 is는 뭐가 다른가요?

==는 두 값이 같은지를 검사해요. is는 두 변수가 메모리 상에서 정확히 같은 객체를 가리키는지를 검사합니다. None, True, False는 싱글턴이기 때문에 is를 쓰세요. 그 외의 경우에는 거의 언제나 ==가 맞아요.

파이썬에서 % 연산자는 뭘 하나요?

숫자에서는 나머지 연산자예요 — 나눗셈의 나머지를 돌려줍니다. 17 % 52예요. 문자열에서는 "hello %s" % name처럼 예전 방식의 포매팅 문법이기도 한데, 이건 대부분 f-string으로 대체됐어요.

Coddy로 코딩 배우기

시작하기