논리연산자 A and B ~ A not in B 에 대한 나의 해석

gyeorrr·2023년 1월 13일
0

논리연산자는 True or False 그러니까 bool type의 값에 작동하는 연산자이다

ex)

A and B   : A도 참이고 , B도 참이면 전체가 참이다 ( A가 참이면 B는 읽지도 않고 참값을 추출 )

A or B    : A나 B 둘 중 , 하나라도 참이면 전체가 참임 ( 나중에 응용은 밑에서 확인 하기)

 not A    : A의 결과를 반전 (말 그대로 True 값이면 False 로 False 면 True 로 인식하게됨)

A in B    : A가 B에 포함되어 있으면 True

   ex ) number = 1, 3, 5, 7

print ( 3 in number)      =>   결과 값은 True 

​

5. A not in B : A가  B에 포함되어 있지 않으면 True ( 4번과 반대 )

응용 1.

수의 범위를 제한하고자 할 때 and 함수를 쓰면 됨

해당 범위의 최소값 <= 입력값 and 입력값 <= 최대값

ex ) 

n1 = int(input('정수입력 (0~ 100) : '))

if 0 <= n1 and n1 <=100 : 

    print('정상')

if not (0 <= n1 <= 100):

    print('범위초과')

응용 2. (삼항연산이라고 하나봄)

AND 함수와 or 함수를 이용하여 , 함수를 짧게 만들 수 있음

age = 20

print((age >= 20) and ('성인') or ('미성년자')

이런식으로 and 함수는 두개의 값이 참이여야 출력 or 은 하나만 해도 출력인데

age >=20 이것이 False로 뜨면 뒤에있는 성인은 자동적으로 False 값이 되고 홀로 남겨진 '미성년자' 함수는 True 값으로 인식되어서 출력됨 ( str 함수는 무조건 True 성질을 띄고 있다 ''공백은 False)

반대로 age 값이 참이라면 자연스럽게 뒤에있는 str 함수인 '성인'도 참으로 인식되어서 바로 결과가 출력되고 뒤에있는 or '미성년자' 함수는 읽히지도 않음

문제가 길어지지않는다면 if 문 대신 응용해서 쓰기 정말 편한 것 같다

같은 문제로 예를 들어보이면

s2 = input('문자열 입력:')
d2 = 'apple'  

if s2 == d2:
    r2 = '일치' 
    
if s2 != d2:
	r2 = '불일치'
print(r2)

이걸

s2 = input('문자열 입력: ')

answer = s2 == 'apple' and '일치' or '불일치'
print(answer)

이렇게 간단하게 만들 수 있음

그런데 왠만하면 'apple' 예약어로 저장하는게 나중에 수식길어질 때 쓰기 좋다고 한다.

0개의 댓글