1. else란?
if조건문은 분기(branh)를 위한 문법이다. 즉, 분기는 '둘 이상으로 갈라지다'라는 뜻으로 프로그램을 둘 이상으로 나누는 것이다. 도로의 분기점과 같다. else를 사용하면 조건식이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있다.
2. else 사용하기
else는 if조건문 뒤에 오며 단독으로 사용 불가능
그리고 if와 마찬가지로 else도 세미콜론(:)을 붙이며 다음 줄에 실행할 코드가 온다.
if 조건식:
코드1
else:
코드2
>>> x=10
>>> if x==10:
print('x는 10입니다.')
else:
print('x는 10이 아닙니다.')
출력: x는 10입니다.
3. if else 실행 흐름
조건식이 참이면 if의 코드가 실행되고, 거짓이면 else의 코드가 실행된다.
4. 조건부 표현식(conditional expression)
변수 = 값 if 조건문 else 값
>>> x=10
>>> print('x는 10입니다.') if x==10 else 0
x는 10입니다.
5. 들여 쓰기
else는 if와 들여 쓰기 규칙이 같다.
[예시 1] print 들여 쓰기 제대로 안 하는 경우
>>> x=100
>>>
if x == 100:
print('100입니다.')
else:
print('x에 들어있는 숫자는') # unexpected indent 에러 발생
print('100이 아닙니다.')
[예시 2] else가 여러 줄일 때 마지막 줄의 들여 쓰기를 하지 않으면
x = 100
if x == 100:
print('100입니다.')
else:
print('x에 들어있는 숫자는')
print('100이 아닙니다.')
출력: 100입니다.
100이 아닙니다.
'100이 아닙니다.'까지 함께 출력된다. 왜냐하면 마지막 print는 들여 쓰기가 없어서 else와는 상관없는 코드가 되었기 때문이다. 이럴 땐 한 칸 띄어보면 잘못됐는지 알 수 있죠.
x = 100
if x == 100:
print('100입니다.')
else:
print('x에 들어있는 숫자는')
print('100이 아닙니다.')
6. if/else의 동작 방식(True, False, None)
if True:
print('참')
else:
print('거짓')
if False:
print('참')
else:
print('거짓')
if None:
print('참')
else:
print('거짓')
출력: 참
거짓
거짓
True는 if의 코드가, False는 else의 코드가 실행된다. 특히, None은 False로 취급되므로 else의 코드가 실행된다.
실제 코드를 작성할 때 변수에 들어있는 값이나 함수의 결과가 None인 경우가 많으므로 기억해두길 바람.
7. if/else의 동작 방식(0, 1, 16진수, 2진수, 실수)
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('거짓')
주로 0이면 거짓이고 0을 제외한 모든 정수와 실수는 참이다.
8. if/else의 동작 방식(문자열)
if 'Python':
print('참')
else:
print('거짓')
if '':
print('참')
else:
print('거짓')
출력: 참
거짓
문자열은 '참'이고 빈 문자열은 '거짓'이 나온다.
9. 파이썬 문법에서 False로 취급하는 것들
None
False
0인 숫자들: 0, 0.0, 0j
비어 있는 문자열, 리스트, 튜플, 딕셔너리, 세트: '', "", [], (), {}, set()
클래스 인스턴스의 __bool__(), __len__() 메서드가 0 또는 False를 반환할 때
10. 조건식을 여러 개 지정하기
member='y'
payment='y'
if member =='y' and payment=='y':
print('회원이시네요. 어서 오세요!')
else:
print('회원등록과 지불 먼저 하고 오세요.')
조건에서 member이면서 payment까지 했다면 print를 실행하고 아니면 else출력.
만약 둘 중 하나라도 만족했을 때 조건문을 실행하려고 한다면 or연산자 쓰면 된다.
11. 중첩 if조건문과 논리 연산자
보통은 if를 계속 나열해서 중첩 if조건문으로 만드는 경우가 많다.
x=5
if x>0:
if x<20:
print('x는 20보다 작은 양수입니다.')
출력: x는 20보다 작은 양수입니다.
if로 x가 0보다 큰지 검사하고 맞다면 x가 20보다 작은지 검사한다.
그 둘이 맞다면 print를 출력하는 형태
하지만, 논리 연산자로 if하나 줄일 수 있다. 코드는 짧아야 좋다.
x=5
if x>0 or x<20:
print('x는 20보다 작은 양수입니다.')
출력: x는 20보다 작은 양수입니다.
and연산자: 두 조건을 모두 만족해야 참.
하지만, 더 간단히 만들 수 있다.
x=5
if 0<x<20:
print('x는 20보다 작은 양수입니다.')
출력: x는 20보다 작은 양수입니다.
부등호를 사용하면 코드를 더 간단히 만들 수 있다.
12. 0, None, 빈 문자열을 not으로 뒤집으면?
if not 0: #0은 False인데 not False니까 True죠? True는 참이죠.
print('참') # not 0은 참
if not None:
print('참') # None은 참
if not '':
print('참') # not 빈 문자열은 참
출력: 참
참
참
'IT지식 > Python' 카테고리의 다른 글
파이썬 elif사용하기, if와 elif차이 (0) | 2021.10.14 |
---|---|
►파이썬 코딩 도장-14.7 심사문제: 합격 여부 판단하기 (0) | 2021.10.12 |
►파이썬 코딩 도장-13.7 심사문제: 온라인 할인 쿠폰 시스템 만들기 (0) | 2021.10.11 |
파이썬 중첩 if조건문 사용하기/사용자 입력값에 if조건문 사용하기 (0) | 2021.10.11 |
파이썬 if조건문과 들여쓰기 (0) | 2021.10.11 |