Programming/Python

[코딩도장-파이썬] else 사용하기

Supreme_YS 2020. 11. 12. 13:34

*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이 아닙니다')
    

if와 else 동작흐름 출처. 코딩도장

● 들여쓰기 : 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보다 작은 양수입니다.')