본문 바로가기
Python

파이썬 논리, 삼항 연산자와 우선순위

by Hunger 2023. 6. 30.
반응형

1. 논리 연산자

논리값과 놀리값을 비교하는 연산을 할 때는 논리 연산자를 사용합니다. 주로 비교 연산자와 같이 사용되며 이는 비교 연산자의 결과값이 놀리값이기 때문입니다. 또한 비교 연산자는 논리 연산자보다 우선 순위가 높기 때문에 비교 연산자들을 연결하는 연산자로 논리 연산자를 사용할 수 있습니다.
논리 연산에는 논리합, 논리곱, 논리 부정이 있습니다. 참고로 컴퓨터는 1을 참으로 0을 거짓으로 인식합니다. 이때, and 연산을 논리곱, or 연산을 논리합이라고 합니다. and 연산에서는 1을 아무리 곱했다 하더라도 그 식에 0을 한 번만 곱해도 최종 결과값은 0이 됩니다. or 연산에서는 0을 아무리 더했다 하더라도 그 식에 1을 한 번만 더해도 최종 결과값은 1이 됩니다. 다시 말해, Ture and False의 결과값은 False 이지만, Ture or False의 결과값은 True입니다.

 

Code

isTrue = True and True
print("True and True : ", isTrue)
isTrue = True and False
print("True and False : ", isTrue)
isTrue = False and False
print("False and False : ", isTrue)
isTrue = True or True
print("True or True : ", isTrue)
isTrue = True or False
print("True or False : ", isTrue)
isTrue = False or False
print("False or False : ", isTrue)

2. 삼항 연산자

삼항 연산자는 if와 else 사이에 조건식을 놓고 조건식이 참이면 if 앞의 문장을 실행하고 조건식이 거짓이면 else 뒤에 문장을 실행합니다.
코드 구조
문장1 | if | 조건식 | else | 문장2
문장1은 조건식이 참일 때 실행
문장2는 조건식이 거짓일 때 실행

 

Code

number = int(input("input number : "))
result = "it's bigger than 50" if number > 50 else "it's small than 50"
print("True") if True else print("False")

3. 단항 연산자

파이썬 단항 연산자에는 ~, +, - 등이 있습니다. 이와 같은 단항 연산자는 산술 연산과 달리 이항 연산이 아닌, 즉 두 항을 연결하여 연산하는 것이 아니라 하나의 항의 값에 대해 부호로써 사용됩니다.

4. 연산자의 우선순위

연산자를 실행할 때는 실제 수학 계산과 마찬가지로 각 연산자 간에 우선순위가 존재합니다. 산술 연산자에는 곱하기, 나누기 연산자가 더하기, 빼기 연산자보다 더 높은 우선순위를 가집니다. 또한 산술 연산자보다는 단항 연산자가, 단항 연산자보다는 지수 연산자인 ** 이 더 높은 우선순위를 가집니다. 하지만 가장 먼저 실행하는 식은 수학과 마찬가지로 괄호 안에 있는 식입니다. 상대적으로 낮은 우선순위에는 관계, 비교, 논리, 비트, 대입, 복합 대입 연산이 있습니다.

연산자의 우선순위

  1. () 괄호 | [] 인덱스 | ** 지수 연산자
  2. ~ + - 단항 부호 연산자 | * / // % 곱하기, 나누기, 나머지 연산자 | + - 덧셈 뺄셈 연산자
  3. == != > < >= <= 관계 비교 연산자
  4. and or 논리 연산자
  5. << 비트 시프트 연산 | & ^ | 비트 논리 연산자
  6. = += *= /= %= 대입 연산자, 복합 대입 연산자

[Confer]
연산 과정에서 일반적으로 대부분의 연산은 왼쪽에서 오른쪽으로 진행되지만 단항 연산이나 대입 연산의 경우는 이와 반대인 오른쪽에서 왼쪽으로 진행합니다.

반응형

'Python' 카테고리의 다른 글

파이썬 중첩 if문과 while문  (0) 2023.07.06
파이썬 if 조건문  (0) 2023.07.03
파이썬 산술, 비교, 대입 연산자  (0) 2023.06.27
파이썬 문자형, 논리형, 참조형  (0) 2023.06.21
파이썬 자료형  (0) 2023.06.18

댓글