본문 바로가기
Python

python 간단 정리 - (15)

by shinbian11 2020. 3. 6.

이 파일은 제가 python 기초 강의를 들으면서 필기했던 내용들을 간단하게 정리한 것입니다.

 

혹시나 잘못된 정보가 포함되어있을수도 있기 때문에, 

python 내용을 아시는 분들중에 잘못된 내용을 잡아내신 경우에는 댓글을 달아주시길 바랍니다.

 

----------------------------------------------------------------------------------------------------

저는 이미 c언어를 공부한 이후에 파이썬을 공부하고 있는 터라, 필기 내용 자체가 아무래도 c언어와 파이썬의

차이점을 위주로 정리를 했습니다. 그렇기 때문에 python을 아예 모르시는 분은 이 문서를 읽기에 약간 불편함이 

있을수도 있다는 점 양해바랍니다. c언어를 어느정도 알고 이 문서를 보는걸 추천드립니다 ㅎㅎ

저도 아직 초보라 틀린 내용이 있을수 있고, 만약 그 부분을 잡아내신다면 댓글로 알려주시길 바랍니다.


논리 연산에 대해 더 알아보기

 

> 일단 논리 연산에 관련된 가벼운 복습!

 

and : 모든 피 연산자가 참일때만 참을 반환 (나머지는 다 거짓 반환)

or : 피 연산자 중 하나라도 참이면 참을 반환 (모든 피연산자가 거짓일때만 결과적으로 거짓을 반환)

not : 논리값을 거꾸로 뒤집어서 반환. 즉 not True = False, not False = True이다.

 

> c언어와 다르게 &&, ||, != 와 같은 표현이 아닌, and, or, not 의 표현으로 나타낸다. 

c언어보다 더 사람의 언어에 가깝게 표현되는 언어가 파이썬이다.

 

ex)

def return_false():
    print("함수 return_false")
    return False;
 
 
def return_true():
    print("함수 return_true")
    return True;
 
 
print("테스트1")
a = return_false()
b = return_true()
if a and b:
    print(True)
else:
    print(False)
    

#함수 return_false
#함수 return_true
#False

> return_false(), return true() 함수가 한번씩 호출되면서 각각 '함수 return_false'와 '함수 return_true' 가 출력이 된다.

그 이후, a는 False가 저장, b는 True가 저장된다.

그러므로 14번째 줄에서 a and b 는 False and True 이다.

 

> and는 피 연산자가 모두 True 일때만 True가 반환된다. 하지만 여기에서는 a가 False이므로 if 의 조건식도 False가 된다.

그러므로 if가 아닌 else문이 실행되므로 False가 출력된다.


논리 연산자의 성질

 

def return_false():
    print("함수 return_false")
    return False;
 
 
def return_true():
    print("함수 return_true")
    return True;
 
 
print("테스트2")
if return_false() and return_true():
    print(True)
else:
    print(False)
 

#테스트2
#함수 return_false
#False

> 함수 return_false만 출력이 된다...왜 그런가?

> return_false() 함수를 실행할때 이미 if문의 조건식이 거짓이므로 뒤에 return_true()는 실행할 필요가 없다.

이것이 true가 나오든 false가 나오든 어짜피 조건식은 거짓이 나올것이므로 볼것도 없다!


또 다른 예시 )

def return_true():
    print("truetrue")
    return True
 
def return_false():
    print("falsefalse")   
    return False
 
#이 상황에서도 return_true()가 true이므로 if문 조건식은 무조건 참! 뒤에건 실행 안됨!

if return_true() or return_false():  
    print("실행")
else:
    print("노 실행")
 
#truetrue
#실행

> 이 경우에서도 return_true()가 true이므로 if문 조건식은 무조건 참! 뒤에건 실행 안됨!


이것들의 bool값은?

> 숫자 0을 제외한 모든 수 - true

> 빈 딕셔너리, 빈 리스트를 제외한 모든 딕셔너리, 리스트 - true

> 아무 값도 없다는 의미인 None - false

> 빈 문자열을 제외한 모든 문자열 - true

 

ex)

value = input('입력해주세요> ') or '아무것도 못 받았어'
print('입력받은 값> ',value)
 
#입력을 하면 입력한 값이 출력
#입력 안하면 '아무것도 못 받았어'가 출력
# 입력을 하면 무조건 input부분이 true이므로 뒤에는 볼 것도 없이 앞의 값이 value가 된다!
# 입력을 안하면 무조건 input부분이 false이므로 뒤에 값이 곧 value가 된다!

ex2)

a = 1 or 10   # a는 1이다
b = 0 or 10   # b는 10이다
 
 
print("a:{}, b:{}".format(a, b))   # a: 1, b: 10

'Python' 카테고리의 다른 글

python 간단 정리 - (17)  (0) 2020.03.08
python 간단 정리 - (16)  (0) 2020.03.07
python 간단 정리 - (14)  (0) 2020.03.03
python 간단 정리 - (13)  (0) 2020.03.02
python 간단 정리 - (12)  (0) 2020.02.28