웹사이트 검색

Python 3의 부울 논리 이해


소개

부울 데이터 유형은 True 또는 False의 두 값 중 하나일 수 있습니다. 프로그래밍에서 부울을 사용하여 주어진 프로그램에서 제어 흐름을 비교하고 결정합니다.

부울은 컴퓨터 과학의 알고리즘에 정보를 제공하는 수학의 논리 분기와 관련된 진리 값을 나타냅니다. 수학자 George Boole의 이름을 딴 Boolean이라는 단어는 항상 대문자 B로 시작합니다. 값 TrueFalse도 항상 각각 대문자 T와 F를 가집니다. Python의 특수 값입니다.

이 자습서에서는 Python에서 부울이 작동하는 방식을 이해하고 비교 연산자, 논리 연산자 및 진리표를 탐색하는 데 필요한 사항을 살펴보겠습니다.

전제 조건

컴퓨터나 서버에 Python 3이 설치되어 있고 프로그래밍 환경이 설정되어 있어야 합니다. 프로그래밍 환경이 설정되지 않은 경우 운영 체제(Ubuntu, CentOS, Debian 등)에 적합한 서버의 프로그래밍 환경에 대한 설치 및 설정 가이드를 참조할 수 있습니다.

비교 연산자

프로그래밍에서 비교 연산자는 값을 비교하고 True 또는 False의 단일 부울 값까지 평가하는 데 사용됩니다.

정보: 이 자습서의 예제 코드를 따라하려면 python3 명령을 실행하여 로컬 시스템에서 Python 대화형 셸을 엽니다. 그런 다음 >>> 프롬프트 뒤에 추가하여 예제를 복사, 붙여넣기 또는 편집할 수 있습니다.

아래 표는 부울 비교 연산자입니다.

Operator What it means
== Equal to
!= Not equal to
< Less than
> Greater than
<= Less than or equal to
>= Greater than or equal to

이러한 연산자의 작동 방식을 이해하기 위해 Python 프로그램에서 두 개의 변수에 두 개의 정수를 할당해 보겠습니다.

x = 5
y = 8

이 예에서 x5의 값을 가지므로 값이 8y보다 작습니다. >.

이 두 변수와 관련 값을 사용하여 위 표의 연산자를 살펴보겠습니다. 우리 프로그램에서 파이썬에게 각 비교 연산자가 참인지 거짓인지를 출력하도록 요청할 것입니다. 우리와 다른 사람들이 이 출력을 더 잘 이해할 수 있도록 Python이 평가하는 내용을 보여주는 문자열도 출력하도록 할 것입니다.

x = 5
y = 8

print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)

이 프로그램을 실행하면 다음과 같은 결과를 받게 됩니다.

Output
x == y: False x != y: True x < y: True x > y: False x <= y: True x >= y: False

수학적 논리에 따라 위의 각 식에서 Python은 다음을 평가했습니다.

  • 5(x)는 8(y)과 같습니까? 거짓
  • 5는 8과 같지 않습니까? 참
  • 5는 8보다 작습니까? 참
  • 5가 8보다 큽니까? 거짓
  • 5가 8보다 작거나 같은가요? 참
  • 5는 8보다 작거나 같지 않습니까? 거짓

여기서는 정수를 사용했지만 부동 소수점 값으로 대체할 수 있습니다.

문자열은 부울 연산자와 함께 사용할 수도 있습니다. 추가 문자열 방법을 사용하지 않는 한 대/소문자를 구분합니다.

실제로 문자열을 부울 연산자와 비교하는 방법은 다음과 같습니다.

Sammy = "Sammy"
sammy = "sammy"

print("Sammy == sammy: ", Sammy == sammy)

위 프로그램의 출력은 다음을 반환합니다.

Output
Sammy == sammy: False

위의 Sammy 문자열은 sammy 문자열과 같지 않습니다. 하나는 대문자 S로 시작하고 다른 하나는 소문자 s로 시작합니다. 그러나 \Sammy\ 값이 할당된 다른 변수를 추가하면 다음과 같은 것으로 평가됩니다.

Sammy = "Sammy"
sammy = "sammy"
also_Sammy = "Sammy"

print("Sammy == sammy: ", Sammy == sammy)
print("Sammy == also_Sammy", Sammy == also_Sammy)

위의 프로그램을 실행하면 다음과 같은 결과가 나타납니다. 이는 문자열이 대소문자를 포함하여 완전히 동일하다면 부울 논리 관점에서 동일한 것으로 평가됨을 나타냅니다.

Output
Sammy == sammy: False Sammy == also_Sammy: True

><를 포함한 다른 비교 연산자를 사용하여 두 문자열을 비교할 수도 있습니다. 파이썬은 문자의 ASCII 값을 사용하여 이러한 문자열을 사전식으로 비교합니다.

비교 연산자를 사용하여 부울 값을 평가할 수도 있습니다.

t = True
f = False

print("t != f: ", t != f)

위의 프로그램은 다음을 반환합니다.

Output
t != f: True

위의 출력에서 알 수 있듯이 우리가 작성한 코드는 TrueFalse와 같지 않다고 평가했습니다.

두 연산자 ===의 차이점에 유의하십시오.

x = y	# Sets x equal to y
x == y	# Evaluates whether x is equal to y

첫 번째 =는 하나의 값을 다른 값과 동일하게 설정하는 대입 연산자입니다. 두 번째 ==는 두 값이 같은지 여부를 평가하는 비교 연산자입니다.

논리 연산자

값을 비교하는 데 사용되는 세 가지 논리 연산자가 있습니다. 표현식을 부울 값까지 평가하여 True 또는 False를 반환합니다. 이러한 연산자는 and, ornot이며 아래 표에 정의되어 있습니다.

Operator What it means Example
and True if both are true x and y
or True if at least one is true x or y
not True only if false not x

논리 연산자는 일반적으로 두 개 이상의 식이 참인지 아닌지를 평가하는 데 사용됩니다. 예를 들어 성적이 합격인지 학생이 코스에 등록되어 있는지 확인하는 데 사용할 수 있습니다. 이 두 가지 경우가 모두 해당되면 시스템에서 학생에게 등급이 지정됩니다. 또 다른 예는 사용자가 지난 6개월 동안 스토어 크레딧을 가지고 있는지 또는 구매했는지 여부를 기반으로 온라인 상점의 유효한 활성 고객인지 여부를 결정하는 것입니다.

논리 연산자의 작동 방식을 이해하기 위해 세 가지 식을 평가해 보겠습니다.

print((9 > 7) and (2 < 4))	# Both original expressions are True
print((8 == 8) or (6 != 6))	# One original expression is True
print(not(3 <= 1))			# The original expression is False
Output
True True True

첫 번째 경우 print((9 > 7) and (2 < 4)), 9 > 72 < 4 모두 평가 and 연산자가 사용되었기 때문에 True로 바꿉니다.

두 번째 경우 print((8 == 8) or (6 != 6))8 == 8이 True로 평가되었기 때문에 6 != 6가 False로 평가되는 차이점은 or 연산자가 사용되었기 때문입니다. and 연산자를 사용했다면 False로 평가됩니다.

세 번째 경우 print(not(3 <= 1))에서 not 연산자는 3 <=1이 반환하는 False 값을 부정합니다. .

정수를 부동 소수점으로 대체하고 False 평가를 목표로 합시다.

print((-0.2 > 1.4) and (0.8 < 3.1))	# One original expression is False
print((7.5 == 8.9) or (9.2 != 9.2))	# Both original expressions are False		
print(not(-5.7 <= 0.3))				# The original expression is True

위의 예에서

  • 에는 False로 평가되는 False 표현식이 하나 이상 있어야 합니다.
  • 또는에는 두 식이 모두 False로 평가되어야 합니다.
  • not은 새 표현식이 False로 평가되려면 내부 표현식이 True여야 합니다.

위의 결과가 명확하지 않은 경우 아래의 진리표를 통해 속도를 높일 수 있습니다.

and, ornot을 사용하여 복합 명령문을 작성할 수도 있습니다.

not((-0.2 > 1.4) and ((0.8 < 3.1) or (0.1 == 0.1)))

가장 안쪽에 있는 표현식을 먼저 살펴보겠습니다: (0.8 < 3.1) 또는 (0.1 == 0.1). 이 표현식은 두 수학적 진술이 모두 True이기 때문에 True로 평가됩니다.

이제 반환된 값 True를 가져와 다음 내부 표현식 (-0.2 > 1.4) 및 (True)와 결합할 수 있습니다. 이 예는 -0.2 > 1.4가 False이고 (False) 및 (True)가 False를 반환하기 때문에 False를 반환합니다.

마지막으로 외부 표현식: not(False)는 True로 평가되므로 이 명령문을 출력할 경우 최종 반환 값은 다음과 같습니다.

Output
True

논리 연산자 and, ornot은 식을 평가하고 부울 값을 반환합니다.

진리표

수학의 논리 분야에 대해 배울 것이 많지만 프로그래밍할 때 알고리즘적 사고를 개선하기 위해 일부를 선택적으로 배울 수 있습니다.

아래는 비교 연산자 ==와 각 논리 연산자 and, ornot 에 대한 진리표입니다. . 그것들을 추론할 수는 있지만 프로그래밍 의사 결정 프로세스를 더 빠르게 만들 수 있으므로 그것들을 암기하는 것이 도움이 될 수 있습니다.

== 진리표

x == y Returns
True == True True
True == False False
False == True False
False == False True

AND 진리표

x and y Returns
True and True True
True and False False
False and True False
False and False False

또는 진리표

x or y Returns
True or True True
True or False True
False or True True
False or False False

NOT 진리표

not x Returns
not True False
not False True

진리표는 논리학에서 흔히 사용되는 수학적 표로, 컴퓨터 프로그래밍에서 알고리즘(명령어)을 구성할 때 기억하거나 염두에 두는 데 유용합니다.

흐름 제어에 부울 연산자 사용

흐름 제어문의 형태로 프로그램의 흐름과 결과를 제어하기 위해 조건 다음에 절을 사용할 수 있습니다.

조건은 True 또는 False의 부울 값으로 평가되어 프로그램에서 결정이 내려지는 지점을 나타냅니다. 즉, 어떤 것이 True 또는 False로 평가되는지 조건이 알려줍니다.

절은 조건을 따르고 프로그램의 결과를 지시하는 코드 블록입니다. 즉, "x가 True이면 이렇게 하십시오.\라는 구성의 이 부분을 수행하는 것입니다.

아래 코드 블록은 Python 프로그램의 흐름을 제어하기 위해 조건문과 함께 작동하는 비교 연산자의 예를 보여줍니다.

if grade >= 65:					# Condition
    print("Passing grade")		# Clause

else:
    print("Failing grade")

이 프로그램은 각 학생의 성적이 합격인지 불합격인지를 평가합니다. 성적이 83점인 학생의 경우 첫 번째 문은 으로 평가되고 성적 통과라는 인쇄 문이 트리거됩니다. 성적이 59점인 학생의 경우 첫 번째 문은 False로 평가되므로 프로그램은 else 식에 연결된 인쇄 문을 실행하기 위해 이동합니다. : 낙제 점수.

Python의 모든 단일 개체는 True 또는 False로 평가될 수 있기 때문에 PEP 8 스타일 가이드는 값을 True 또는 False와 비교하지 말 것을 권장합니다. 예기치 않은 부울을 반환합니다. 즉, 프로그램에서 if sammy == True:를 사용하는 것을 피해야 합니다. 대신 sammy를 부울을 반환하는 부울이 아닌 다른 값과 비교하십시오.

부울 연산자는 흐름 제어 문을 통해 프로그램의 최종 결과를 결정하는 데 사용할 수 있는 조건을 제공합니다.

결론

이 자습서에서는 부울 유형에 속하는 비교 및 논리 연산자와 진리표 및 프로그램 흐름 제어를 위한 부울 사용에 대해 설명했습니다.

"조건문 작성 방법\ 자습서에서 다른 데이터 유형에 대해 자세히 알아볼 수 있습니다.

또한 초보자와 빠른 참조가 필요한 사람 모두를 지원할 수 있는 무료 Python eBook인 Python으로 코딩하는 방법이 있습니다.