학습내용
#1 : 불(bool)자료형이란? #2 : 자료형의 참과 거짓 #3 : if문이란? #4 : 조건문(conditional statement) 연산자 #5 : 다양한 조건을 판단하는 elif #6 : if문을 한 줄로 작성하기(조건부 표현식) #7 : 예제와 함께 복습 |
#1 : 불(bool)자료형이란?
불(bool) 자료형은 참(True)과 거짓(False)을 나타내는 자료형으로 참(True)과 거짓(False) 값만 가진다. 파이썬에서 True, False의 첫 문자를 항상 대문자로 사용해야한다.
a = True
b = False
type(a)
#bool
type(b)
#bool
- type()을 사용하면 bool(boolean) 타입이라 나온다.
1 == 1
#True
2 > 1
#True
2 < 1
#Flase
- 불 자료형은 조건문의 반환 값으로도 사용된다.
#2 : 자료형의 참과 거짓
대부분의 언어는 0은 거짓이고 이외는 참이다. 파이썬은 이 컨셉을 따라갔으며 더 확장했다.
값 | True or Flase | 값 | True or Flase |
"koo" | Ture | { } | Flase |
" " | Flase | 1 | Ture |
[1, 2, 3] | Ture | 0 | Flase |
[ ] | Flase | None | Flase |
( ) | Flase |
- 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면 (" ", [ ], ( ), { }) 거짓이 되고, 값이 있는 경우 참이 된다. 숫자에서는 값이 0일 때 거짓이 된다.
조건문에서 bool
#bool 활용 예시
a = [1,2,3,4,5]
while a:
print(a.pop())
# 5
# 4
# 3
# 2
# 1
while 조건문:
수행할 문장
- while은 조건문이 참일 때까지만 반복하는 것.
- 조건문이 참인 동안만 조건문 안에 있는 문장을 반복해서 수행.
if []:
print("True")
else:
print("False")
#False
if [0,1,2,3,4]:
print("True")
else:
print("False")
#True
- if 다음 조건이 참이면 if 다음 문장을 실행, 거짓이라면 else를 실행.
- 비어있는 리스트는 False 반환, 값이 들어있는 리스트는 True 반환.
불 연산(bool)
bool('koo')
#True
bool('')
#False
bool(0)
#False
- bool 내장 함수를 사용해 자료형의 참과 거짓을 식별할 수 있다.
#3 : if문이란
if문은 프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 사용.
sleep = True
if sleep:
print("알람을 울려라.")
else:
print("깨어 있다.")
#알람을 울려라.
- sleep은 True를 반환하기에 알람을 울려라.가 출력된다.
if문 기본 구조
if 조건문:
수행할 문장1
수행할 문장2
...
else:
수행할 문장1
수행할 문장2
...
- 조건문을 테스트해서 참이면 if문 바로 다음 문장들을 수행하고, 거짓이면 else문 다음 문장들을 수행한다.
#4 : 조건문(conditional statement) 연산자
'조건문'이란 참과 거짓을 판단하는 문장. 조건문에는 비교연산자가 가장 많이 사용된다.
비교연산자 | 설명 | 비교연산자 | 설명 |
x < y | x가 y보다 작다 | x > y | x가 y보다 크다 |
x == y | x와 y가 같다 | x != y | x와 y가 같지 않다 |
x >= y | x가 y보다 크거나 같다 | x <= y | x가 y보다 작거나 같다 |
x = 5
y = 7
x > 7 #False
x == y #False
x != y #True
1) 조건문 사용 예시
sleep = 70
if sleep >= 80:
print("알람을 울려라.")
else:
print("깨어 있다.")
#깨어 있다.
- sleep이 70이기에 False를 반환하고 따라서 else의 "깨어 있다."가 출력된다.
2) and, or, not 연산자
and, or, not 조건을 판단하기 위해 사용하는 연산자로 and, or, not이 있다.
연산자 | 설명 |
x or y | x와 y 둘 중에 하나만 참이어도 된다. (또는) (둘 중 하나만 참) |
x and y | x와 y 모두 참이다. (그리고) (둘 다 참) |
not x | x가 거짓이면 참이다. |
money = 5000
card = True
if money >= 10000 or card:
print("택시를 타고 가라")
else:
print("버스를 타고 가라")
#택시를 타고 가라
- 10000은 False이지만 card가 True이기에 "택시를 타고 가라"가 출력됨.
3) x in s, x not in s
in | not in |
x in 리스트 | x not in 리스트 |
x in 튜플 | x not in 튜플 |
x in 문자열 | x not in 문자열 |
1 in [1,2,3,4,5]
#True
1 not in [1,2,3,4,5]
#False
- 1이 리스트 [1,2,3,4,5]안에 들어있기에 in은 True를, not int은 False를 반환한다.
'a' in ('a','b','c')
#True
'B' in 'Big data python'
#True
'b' in 'Big data python'
#False
- 문자열의 경우 대소문자를 구분해야한다.
blog = ['koo', 'data', 'python', 'math']
if 'math' in blog:
print("열공하자")
else:
print("수학도 해야지")
#열공하자
- 리스트도 사용이 가능하다.
조건문에서 아무 일도 하지 않게 설정하기
조건문의 참, 거짓에 따라 실행할 행동을 정의할 때 pass를 사용하면 아무런 일도 하지 않도록 설정할 수 있다.
blog = ['koo', 'data', 'python', 'math']
if 'math' in blog:
pass
else:
print("수학도 해야지")
- pass를 사용하면 아무것도 반환되지 않고, 출력되지 않는다.
#5 : 다양한 조건을 판단하는 elif
세 가지 이상의 조건을 판단하고자 할 때 elif를 사용한다.
wallet = ['coin', 'cash', 'picture']
card = True
if 'money' in wallet:
print('버스를 타고 가라')
elif card:
print('택시를 타고 가라')
else:
print('걸어가라')
#시를 타고 가라
- wallet 안에 money가 있으면 '버스를 타고 가라', 없다면 card가 있는지(True 인지) 확인.
- card가 있다면(True 라면) '택시를 타고 가라', 없다면 '걸어가라'
- elif는 이전 조건문이 거짓일 때 수행되며, 무한히 늘릴 수 있다.
- if부터 위에서부터 순서대로 참인지 거짓인지 확인을 하고 참을 만나면 해당 명령문을 수행하고 if문을 탈출.
#6 : if문을 한 줄로 작성하기(조건부 표현식)
1) if문을 한 줄로 작성하기
wallet = ['coin', 'cash', 'picture']
#4줄짜리 코드
if 'cash' in wallet:
pass
else:
print("카드로 결제하기")
#1줄짜리 코드
if 'cash' in wallet: pass
else: print("카드로 결제하기")
- 수행할 문장이 한 줄일 때 if문을 한 줄로 작성할 수 있다.
2) 조건부 표현식
score = 95
#5줄 짜리 코드
if score >= 80:
grade = 'pass'
else:
grade = 'fail'
print(grade)
#2줄 짜리 코드
grade = 'pass' if score >= 80 else 'fail'
print(grade)
- if 좌측에 (참일 때 실행되는 조건문)을, if 우측에 (거짓일 때 실행되는 조건문)을 배치.
- (grade = 'pass') (if score >= 80) (else 'fail')
#7 : 예제와 함께 복습
a = {1:"1", 2:"2"}
print(a.get(3))
#None
print(bool(a.get(3)))
#False
- key 값이 3인 요소는 없기에 None 값이 반환되고, 이를 bool로 판별하면 False가 나온다.
a = [0,1,2,3,4]
while a:
print(a.pop())
# 4
# 3
# 2
# 1
# 0
a = [0,1,2,3,4]
while a:
a.pop()
print(a)
# [0, 1, 2, 3]
# [0, 1, 2]
# [0, 1]
# [0]
# []
- a가 비어있는 리스트가 되어 False 값을 반환할 때까지 pop을 통해 마지막 요소를 반환하고 제거.
score = 80
major = "Arts"
area = "seoul"
if score >=80 and major == 'Arts' or area == 'seoul':
print('pass')
else:
print('false')
#pass
score = 80
major = "Arts"
area = "seoul"
if score >=80 and major == 'math':
print('pass')
elif area == "seoul":
print('retry')
else:
print('false')
#retry
- and, or, elif 등으로 정말 다양한 분기점을 만들어 낼 수 있다.
느낀 점
활용도가 정말 무궁무진 할텐데 아직 내가 너무 부족해서 답답하다. 조건문은 프로그래밍의 꽃이 아닐까?
'파이썬 > Basics(기초)' 카테고리의 다른 글
[Python] 12. 반복문(while, for), 이중 for문, 리스트 내포 (0) | 2021.10.07 |
---|---|
[Python] 11. 변수(variable)의 복사와 참조 (0) | 2021.10.06 |
[Python] 9. 딕셔너리(dictionary), 데이터 만들기 (0) | 2021.10.05 |
[Python] 8. 튜플(tuple), 집합(set) (0) | 2021.10.03 |
[Python] 7. 파이썬 리스트 함수, 수정과 삭제 (0) | 2021.09.27 |
댓글