[파이썬 기초 문법] 7장. True, False 그리고 if 와 그 형제들
20 Jun 2019
Reading time ~4 minutes
이 포스트는 윤성우님의 저서 열혈 파이썬 기초편을 기반으로 작성한 글입니다.
윤성우 열혈 파이썬 기초편
7장.True, False 그리고 if 와 그 형제들
1.참과 거짓을 의미하는 값
>>> True # True는 그 단어의 의미처럼 '참'을 뜻한다.
True
>>> False # False는 그 단어의 의미처럼 '거짓'을 뜻한다.
False
>>> 3 > 10 # 3이 10보다 크니?
False
>>> 3 < 10 # 3이 10보다 작으니?
True
>>> r = 3 < 10 # < 연산의 결과인 True가 변수 r에 저장된다.
>>> r
True
>>> type(True)
"<class 'bool'>"
>>> type(False)
"<class 'bool'>"
따라서 자료형을 아래와 같이 분류할 수 있다.
int형 데이터 ex) 3, 5, 7, 9
float형 데이터 ex) 2.2, 4.4, 6.6, 8.8
리스트형 데이터 ex) [3, 5, 7, 9], [2.2, 4.4, 6.6, 8.8]
스트링형 데이터 ex) "I am a boy", 'You are a girl'
부울형 데이터 ex) True, False
2.소스파일에 main 함수 만들기
# main.py
def main(): # main 함수의 정의
print("Simple Frame")
main() # main 함수의 호출을 명령함
3.if문: 조건이 맞으면 실행을 해라.
# if_positive.py
def main(): # main 함수의 정의
num = int(input("정수 입력: "))
if num > 0:
print("양의 정수입니다.")
# if num > 0: print("양의 정수입니다.") 한 줄이면 이렇게도 가능
main() # 위의 main 함수를 실행해라!
'''
정수 입력: 2
양의 정수입니다.
'''
리스트의 덧셈 및 곱셈 연산결과는 위와 같다.
4.if ~ else문:이쪽 길! 아니면 저쪽 길!
if_else.py
def main():
num = int(input("정수 입력: "))
if num > 0:
print("0보다 큰 수입니다.")
else:
print("0보다 크지 않은 수입니다.")
main()
'''
정수 입력: -7
0보다 크지 않은 수입니다.
'''
5.if ~ elif ~ else문: 여러 길 중에서 하나의 길만 선택!
if_elif_else.py
def main():
num = int(input("정수 입력: "))
if num > 0:
print("0보다 큰 수입니다.")
elif num < 0:
print("0보다 작은 수입니다.")
else:
print("0으로 판단이 됩니다.")
main()
'''
정수 입력: 0
0으로 판단이 됩니다.
'''
6.True 또는 False를 반환하는 연산들
A > Z `A가 Z보다 크면 True, 크지 않으면 False 반환`
A < Z `A가 Z보다 작으면 True, 작지 않으면 False 반환`
A >= Z `A가 Z보다 크거나 같으면 True, 그렇지 않으면 False 반환`
A <= Z `A가 Z보다 작거나 같으면 True, 그렇지 않으면 False 반환`
A == Z `A와 Z가 같으면 True, 같지 않으면 False 반환`
A != Z `A와 Z가 같지 않으면 True, 같으면 False 반환`
>>> True and True
True
>>> True and False
False
>>> True or False
True
>>> False or False
False
>>> not False
True
>>> not True
False
and 연산을 이용한 간결하게 작성할 수 있다.
if num % 2 == 0:
if num % 3 == 0:
print("OK!")
else:
print("NO!")
else:
print("NO!")
if (num % 2) == 0 and (num % 3) == 0:
print("OK!")
else:
print("NO!")
7.리스트와 문자열을 대상으로도 동작하는 >=, <=, ==, !=
>>> 'abc' == 'abc' # 두 문자열이 같은가?
True
>>> 'abc' != 'abc' # 두 문자열이 다른가?
False
>>> [1, 2, 3] == [1, 2] # 두 리스트가 같은가?
False
>>> [1, 2, 3] != [1, 2] # 두 리스트가 다른가?
True
>>> st1 = "123"
>>> st2 = "OneTwoThree"
>>> st1.isdigit() # st1은 숫자로만 이뤄져 있나요?
True
>>> st2.isdigit() # st2는 숫자로만 이뤄져 있나요?
False
8.True 또는 False로 답하는 함수들
>>> st1 = "123"
>>> st2 = "OneTwoThree"
>>> st1.isalpha()
False
>>> st2.isalpha()
True
>>> str = "Supersprint"
>>> str.startswith("Super") # 문자열이 'Super'로 시작하는가?
True
>>> str.endswith("int") # 문자열이 'int'로 끝나는가?
True
# is_phone_num.py
def main():
pnum = input("스마트폰 번호 입력: ")
if pnum.isdigit() and pnum.startswith("010"):
print("정상적인 입력입니다.")
else:
print("정상적이지 않은 입력입니다.")
main()
'''
스마트폰 번호 입력: 010-7777-9999
정상적이지 않은 입력입니다.
스마트폰 번호 입력: 01077779999
정상적인 입력입니다.
'''
9.in, not in
>>> s = "Tomato spaghetti"
>>> if s.find("ghe") != -1:
print("있습니다.")
else:
print("없습니다.")
'''
있습니다.
'''
>>> if "ghe" in s:
print("있습니다.")
else:
print("없습니다.")
'''
있습니다.
'''
>>> 3 in [1, 2, 3] # 리스트 [1, 2, 3] 안에 3이 있는가?
True
>>> 4 in [1, 2, 3] # 리스트 [1, 2, 3] 안에 4가 있는가?
False
>>> 3 not in [1, 2, 3]
False
>>> 4 not in [1, 2, 3]
True
>>> "he" not in "hello"
False
>>> "oo" not in "hello"
True
10.수(Number)를 True와 False로 인식하는 방식
>>> num = 1
>>> if num:
print("0 아닙니다.")
'''
0 아닙니다.
'''
0 오는 경우 False가 온 것으로 간주한다.
0 아닌 수가 오는 경우 True가 온 것으로 간주한다.
>>> num = 1
>>> if num != 0:
print("num은 0 아닙니다.")
'''
num은 0 아닙니다.
'''
>>> num = 1
>>> if num:
print("num은 0 아닙니다.")
'''
num은 0 아닙니다.
'''
>>> bool(5)
True
>>> bool("what")
True
>>> bool("")
False
>>> bool([1, 2, 3])
True
>>> bool([])
False