파이썬 목차 보기
0. INTRO
컴퓨터는 기본적으로 논리 회로를 기반으로 메모리를 구성하므로, 프로그램에서 또한 논리 연산을 수행할 수 있는 코드가 존재한다. 파이썬에는 이러한 논리 코드를 조건문에서 사용하여 더 간결하고 구체적인 프로그래밍이 가능하다. 그리고 반복문과 조건문에 더불어 사용되는 유용한 코드에 대해서도 알아보자.
1. 논리 연산자, and와 or
논리학에서는 어떤 명제의 참과 거짓만을 구분하여, 명제들을 연결하여 논리라는 형태로 그것과 관련된 구성과 원리들을 분석하고 체계화한다. 파이썬에서 True와 False라는 코드는 이 논리학에서 말하는 참과 거짓에 해당한다.
A. True와 False 그리고 not
참과 거짓에 해당되는 이 True와 False는 아쉽게도 숫자 1과 0에 해당하는 고정된 변수라고 할 수 있다. not은 True와 False를 뒤집는다. 예를 들어, 다음과 같이 예시 코드를 한 번 사용해보면, True와 False 그리고 not이 무슨 값을 가졌는지 한눈에 확인할 수 있다.
예시 코드:
A=True + True + True + True
B= False +False + False +False
A
B
not A
not B
B. 직렬 관계, and
위에서 보인 True 와 False에서 알 수 있듯이, 파이썬은 1 이상의 값은 참, 0의 값은 모두 거짓으로 간주한다. 이것은 참과 거짓의 관계에서 나타나는 특성이 1 이상의 값과 0 값의 연산 관계와 동일한 결과를 보일 수 있기 때문이다. 예를 들어, 그 유명한 삼단 논법을 한번 생각해보자.
명제 1; 소크라테스는 사람이다.
명제 2; 모든 사람은 결국 죽는다.
명제 3; 소크라테스는 결국 죽는다.
명제 1과 2가 참이라고 할 때, 명제 3은 참이라는 것은 쉽게 알 수 있다. 이것을 컴퓨터에서 어떻게 대치 킬 것인가?
숫자로 나타내면 간단하다. 참인 명제 1과 2의 주어와 술어를 각각 True로 대치하여 비교하면 된다.
그러면 명제 1과 2는 다음과 같이 다시 쓰일 수 있다.
명제 1; A(True) == B(True)
명제 2; C(True) == D(Ture)
다시 쓰인 명제 1과 2에 따라서 명제 3 또한 다음과 같다.
명제 3; A == D
논리 연산자 and는 두 값이 모두 참이어야 참인 논리 기호이다. 이는 비교 연산자 '=='와 약간 다른 성질을 가지고 있다. '==' 은 앞의 값과 뒤의 값이 서로 같은면 참 다르면 거짓을 반환하는데, 만약 두 비교 값이 거짓이라면 참을 반환한다. 반면 and는 항상 두 비교 값이 참이어야 참을 반환한다. 값을 비교하는 관점에서 한 가지 재미있는 성질을 발견할 수 있는데, 이는 예시 코드로 확인하자.
예시 코드:
1 and 1
0 and 1
1 and 0
2 and 1
1 and 2
C. 병렬 관계, or
논리 연산자 or 은 비교 대상 중 하나만 참 이어도 참값을 반환하는 코드이다. 조건문에서 비교 연산자 '!='와 비슷하지만 다른 점은 두 비교 값이 모두 참의 값에 해당할 때, '!='는 거짓을 반환하지만, 논리 연산자 'or' 은 참을 반환한다.
and와 마찬가지로 값을 비교하는 관점에서 한 가지 재미있는 성질을 다음의 예시 코드로 알 수 있다.
예시 코드:
1 or 1
0 or 1
1 or 0
2 or 1
1 or 2
3. 반복문에 유용한 코드
반복문을 사용함에 있어 유용한 두 가지 코드를 소개한다. 'not in'과 'in'이다. 이 코드는 반복문에서 쓰이고 가장 심플하게 사용하는 방법은 특정 값을 찾는 용도이다. 어떤 값이 리스트 혹은 그에 상응하는 데이터 리스트에 있는지 없는지 알 수 있다.
다음의 예시 코드를 보자
예시 코드:
A= [1,3,5]
1 in A
1 not in A
2 in A
2 not in A
in과 not in 코드는 결국 데이터 모임에 특정값이 있으면 True 없으면 False로 반환하는 결과를 가져온다. 이를 변수와 사용하면 반복문을 간단하게 정의하는 강력한 도구가 된다. 예를 들어, 1부터 10까지 홀수 값만 출력하는 코드를 짠다고 하자. 이는 한 줄의 반복문 코드로 다음과 같이 구현 가능하다.
예시 코드:
V= [2*i+1 for i in range(5)]
'COMPUTER SCIENCE > Python' 카테고리의 다른 글
[Section 4] 재귀에 대하여... (0) | 2021.12.29 |
---|---|
[Section 3] 함수 정의하고 사용하기 (0) | 2021.08.03 |
[Section 2] 구체적 조건을 위한 비교 연산문 (0) | 2021.07.15 |
[Section 2] 조건에 따라 명령을 실행하는 if문 (0) | 2021.07.13 |
[Section 2] 특정 조건에서 반복을 수행하는 while 문 (0) | 2021.07.10 |