파이썬 연산자 우선 순위에 대해 알아보겠습니다. 파이썬은 다양한 종류의 연산자를 제공하며, 이들은 표현식을 계산할 때 어떤 순서로 적용되는지를 결정하는 우선 순위를 갖습니다. 파이썬의 괄호, 인덱싱, await, 거듭제곱, 단항, 산술, 시프트, and, or, in, not in, 논리, 조건부, 람다 할당 연산자 우선 순위를 알아 보겠습니다.

 

괄호 `()`, `[]`, `{}`

괄호 안의 표현식이 가장 먼저 계산됩니다. 괄호는 튜플, 리스트, 딕셔너리, 세트를 생성하는 데에도 사용됩니다.

 

인덱싱 `x[i]`, 슬라이싱 `x[i:j]`, 함수 호출 `x(a, b)`, 속성 참조 `x.y`

이들 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 인덱싱은 리스트나 튜플의 특정 요소에 접근하는 데에, 슬라이싱은 리스트나 튜플의 일부분을 잘라내는 데에, 함수 호출은 함수를 실행하는 데에, 속성 참조는 객체의 속성에 접근하는 데에 사용됩니다.

 

await `await x`

await 표현식은 비동기 함수의 결과를 기다리는 데에 사용됩니다.

 

거듭제곱 `**`

거듭제곱 연산자는 오른쪽에서 왼쪽으로 적용됩니다. 예를 들어, `2 ** 3 ** 2`는 `2 ** (3 ** 2)`와 같습니다.

 

단항 연산자 `+x`, `-x`, `~x`

단항 연산자는 오른쪽 피연산자에만 적용되며, 왼쪽에서 오른쪽으로 적용됩니다. 단항 덧셈은 양의 부호를 나타내고, 단항 뺄셈은 음의 부호를 나타내고, 비트 NOT은 비트 반전을 수행합니다.

 

산술 연산자 `*`, `/`, `//`, `%`

산술 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 곱셈은 두 수를 곱하고, 나눗셈은 왼쪽 수를 오른쪽 수로 나누고, 버림 나눗셈은 나눗셈의 몫을 정수로 내림하고, 나머지는 나눗셈의 나머지를 구합니다.

 

산술 연산자 `+`, `-`

산술 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 덧셈은 두 수를 더하고, 뺄셈은 왼쪽 수에서 오른쪽 수를 뺍니다.

 

비트 시프트 연산자 `<<`, `>>`

비트 시프트 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 왼쪽 시프트는 왼쪽 피연산자의 비트를 오른쪽 피연산자만큼 왼쪽으로 이동하고, 오른쪽 시프트는 오른쪽으로 이동합니다.

 

비트 AND 연산자 `&`

비트 AND 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 비트 AND는 두 피연산자의 각 비트를 비교하여 둘 다 1이면 1, 아니면 0을 반환합니다.

 

비트 XOR 연산자 `^`

비트 XOR 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 비트 XOR는 두 피연산자의 각 비트를 비교하여 하나만 1이면 1, 둘 다 같으면 0을 반환합니다.

 

비트 OR 연산자 `|`

비트 OR 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 비트 OR는 두 피연산자의 각 비트를 비교하여 하나라도 1이면 1, 둘 다 0이면 0을 반환합니다.

 

관계 연산자 `in`, `not in`, `is`, `is not`, `<`, `<=`, `>`, `>=`, `!=`, `==`

관계 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 관계 연산자는 두 피연산자의 값을 비교하거나 관계를 판단하여 참이면 True, 거짓이면 False를 반환합니다. in은 왼쪽 피연산자가 오른쪽 피연산자에 속하는지, not in은 속하지 않는지, is는 두 피연산자가 동일한 객체인지, is not은 동일하지 않은 객체인지, <은 왼쪽 피연산자가 오른쪽 피연산자보다 작은지, <=은 작거나 같은지, >은 큰지, >=은 크거나 같은지, !=은 다른지, ==은 같은지를 검사합니다.

 

논리 NOT 연산자 `not x`

논리 NOT 연산자는 오른쪽 피연산자에만 적용되며, 오른쪽 피연산자가 True이면 False, False이면 True를 반환합니다.

 

논리 AND 연산자 `and`

논리 AND 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 논리 AND는 두 피연산자가 모두 True이면 True, 아니면 False를 반환합니다.

 

논리 OR 연산자 `or`

논리 OR 연산자는 왼쪽에서 오른쪽으로 적용됩니다. 논리 OR는 두 피연산자 중 하나라도 True이면 True, 모두 False이면 False를 반환합니다.

 

조건부 표현식 `x if y else z`

조건부 표현식은 y가 True이면 x를, False이면 z를 반환합니다.

 

람다 표현식 `lambda x: y`

람다 표현식은 이름 없는 함수를 생성하는 데에 사용됩니다. x는 매개변수, y는 반환값입니다.

 

할당 표현식 `x := y`

할당 표현식은 y의 값을 x에 할당하고, x의 값을 반환합니다.

파이썬의 연산자 우선 순위를 알고 있으면 복잡한 표현식을 쉽게 이해하고 작성할 수 있습니다. 하지만 너무 많은 연산자를 한 줄에 사용하면 가독성이 떨어질 수 있으므로, 괄호나 여러 줄로 나누어서 명확하게 표현하는 것이 좋습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기