*shell 환경이 아닌 스크립트(script) 환경에서 작업했기 때문에 print로 출력. shell 환경이라면 print 생략 가능
● else를 사용하여 두 방향으로 분기하기
if 조건문은 분기(branch)를 위한 문법이다. 즉, 분기는 "둘 이상으로 갈라지다"라는 뜻으로 프로그램의 흐름을 둘 이상으로 나누는 것
else는 if 조건문 뒤에 오며 단독으로 사용할 수 없으며 if와 마찬가지로 else도 :(콜론)을 붙이며 다음 줄에 실행할 코드가 온다. 즉, 조건식이 참(True)이면 if의 코드(if 본문)가 실행되고, 거짓(False)이면 else의 코드(else 본문)가 실행된다.
예.
if x == 10:
print('10입니다')
else:
print('10이 아닙니다')
● 들여쓰기 : else도 코드가 여러 줄일 때는 들여쓰기 깊이가 같게 만들어주어야 한다.
x = 5
if x == 10:
print('x는 10')
else:
print('x에 들어있는 숫자는')
print('10이 아닙니다.)
● 값으로 if , else 동작
특히 None은 False로 취급되므로 else의 코드가 실행된다. 실제 코드를 작성할 때 변수에 들어있는 값이나 함수의 결과가 None인 경우가 많으므로 이 부분은 꼭 기억할 필요가 있다.
if True:
print('참') # True는 참
else:
print('거짓')
if False:
print('참')
else:
print('거짓') # False는 거짓
if None:
print('참')
else:
print('거짓') # None은 거짓
● if 조건문에 숫자 지정하기
숫자는 정수(2진수, 10진수, 16진수), 실수와 관계없이 0이면 거짓, 0이 아닌 수는 참이다.
if 0:
print('참')
else:
print('거짓') # 0은 거짓
if 1:
print('참') # 1은 참
else:
print('거짓')
if 0x1F: # 16진수
print('참') # 0x1F는 참
else:
print('거짓')
if 0b1000: # 2진수
print('참') # 0b1000은 참
else:
print('거짓')
if 13.5: # 실수
print('참') # 13.5는 참
else:
print('거짓')
● if 조건문에 문자열 지정하기
if 'Hello': # 문자열
print('참') # 문자열은 참
else:
print('거짓')
if '': # 빈 문자열
print('참')
else:
print('거짓') # 빈 문자열은 거짓
● if 조건문 0, None, 빈 문자열을 not으로 뒤집으면 값이 반대로 바뀐다.
if not 0:
print('참') # not 0은 참
if not None:
print('참') # None은 참
if not '':
print('참') # not 빈 문자열은 참
● True/False 로 취급하는 것들
다음은 파이썬 문법 중에서 False로 취급하는 것들이다.
None
False
0인 숫자들: 0, 0.0, 0j
비어 있는 문자열, 리스트, 튜플, 딕셔너리, 세트: '', "", [], (), {}, set()
클래스 인스턴스의 __bool__(), __len__() 메서드가 0 또는 False를 반환할 때 이들을 제외한 모든 요소들은 True로 취급
● 조건식을 여러개 지정하기
x == 10 and y == 20처럼 and 논리 연산자를 사용하면 x가 10이면서 y가 20일 때 if의 코드가 실행된다. 만약 둘 중 하나라도 만족했을 때 '참'이 출력되도록 하려면 or 논리 연산자를 사용하면 된다.
x = 10
y = 20
if x == 10 and y == 20: # x가 10이면서 y가 20일 때
print('참')
else:
print('거짓')
이와 같은 방법은 아래와 같이 간단하게 만들 수 있다.
if x > 0:
if x < 20:
print('20보다 작은 양수')
#보다 간단한 방법
if x > 0 and x < 20:
print('20보다 작은 양수입니다.')
#더욱 간단한 방법
if 0 < x < 20:
print('20보다 작은 양수입니다.')
'Programming > Python' 카테고리의 다른 글
[코딩도장-파이썬] for 반복문 (0) | 2020.11.14 |
---|---|
[코딩도장-파이썬] elif를 사용하여 여러 방향으로 분기하기 (0) | 2020.11.13 |
[코딩도장-파이썬] if 조건문 (0) | 2020.11.12 |
[코딩도장-파이썬] 딕셔너리(Dictionary) (0) | 2020.11.11 |
[코딩도장-파이썬] 슬라이스(Slice) (0) | 2020.11.11 |