- 는 개념 정리
- 는 개인적으로 새롭게 알게 된 점
3-1. 불 자료형과 if 조건문
불 자료형
- Boolean [불린, 불리언, 불]: True(참)과 False(거짓) 값만 가질 수 있는 자료형
- 여기서 python 이 10<x<30 으로 사용될 수 있다는 것을 처음 알았다. 그런데 if 문과 같은 조건문에서도 and 연산자 없이 저런 형태로 비교 구문이 사용될 수 있는지 궁금하다.
불 연산자
- 논리 연산자: not, end, or
if 조건문
if 조건문이란 조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문. 이는 코드의 실행 흐름을 변경한다는 의미.
이렇게 조건을 기반으로 실행의 흐름을 변경하는 것을 조건 분기 라고 함.
날짜를 계산하는 예시 (p.117-120)
짝수/홀수 구분하는 예시 (p.121-123)
3-2. if~else와 elif 구문
if 조건문은 앞 단계 조건문에서 비교했던 것을, 다음 단계에서 하지 않는 것이 가장 효율적임.
if~else 조건문
- else 구문: if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행되는 부분.
- 조건문이 2가지로만 구분될 때, if else 구문을 사용하는 것이 효율적. => 조건문이 여러개로 연결될 때는 elif 구문 사용.
elif 구문
- elif 구문은 if 조건문과 else 구문 사이에 입력.
False 로 변환되는 값 (3가지; None, 0, 빈 컨테이너)
- if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환해서 처리함.
- False로 변환되는 값은 None, 0 (0.0), 빈 컨테이너 (빈 문자열, 빈 바이트열, 빈 리스크, 빈 튜플, 빈 딕셔너리 등)
- 이 외에는 모두 True로 변환!
pass 키워드
- 다른 프로그래밍 언어에서는 조건문 내부에 아무 내용을 작성하지 않아도 실행이 정상적으로 됨. 그러나 파이썬에서는 조건문 내부에 내용이 없다면 IndentationError 발생.
- 따라서, 파이썬에서는 조건문에 아무 내용을 작성하지 않아도 실행이 정상적으로 작동하게 하기 위해서, pass 구문을 입력함.
21.01.09 추가
1. False로 변환되는 값은 None, 0, 빈 컨테이너.
다른 코드를 짜면서 의문이었던 점.
의문:
- matchobj2가 None 값일 때, if 문을 실행하고 싶음.
- None 은 False 로 변환되기 때문에, if (matchobj2 == None): 으로 사용하지 않고, if matchobj2: 로 해도 될 것이라고 생각함.
- if matchobj2: 로 사용했을 때, 모든 matchobj2에 대해서 if문이 실행됨. => 예상과 다른 결과.
잘못 생각했던 점
- matchobj2가 None일 때 코드가 실행되는 것과 (<--이게 내가 원했던 것이고)
- if문 조건식에 False가 입력되는 것은 아예 다른 문제. (<--이게 내가 입력한 것)
- if matchobj2: 로 조건문을 준다면,
- matchobj2가 None이 아닐 때 (즉, 특정 값이 부여되었을 때), 에 True로 인식되어 코드가 실행되고,
- matchobj2가 None일 때는, False로 인식되어 코드가 실행되지 않을 것.
따라서 matchobj2가 None일 때 if 문을 실행하고 싶으면,
조건식으로 matchobj2 == None을 주는 것이 맞다!
'Python Basic > 혼공파' 카테고리의 다른 글
[혼공파] Chapter 04 반복문 ③for 반복문과 while 반복문 (0) | 2021.01.11 |
---|---|
[혼공파] Chapter 04 반복문 ②딕셔너리 (0) | 2021.01.11 |
[혼공파] Chapter 04 반복문 ①리스트 (0) | 2021.01.11 |
[혼공파] Chapter 02 자료형 (0) | 2021.01.07 |
[혼공파] Chapter 01 파이썬 시작하기 (0) | 2021.01.07 |