Loading [a11y]/accessibility-menu.js
Py) 기초 - 제어문(if)

Py) 기초 - 제어문(if)

파이썬 기반 데이터분석을 위하여 if 조건문에 대해 알아본다.


개요

제어문은 영어로 control flow statement라고 하며 크게 조건문과 반복문이 있다. 조건문은 특정 조건 만족 여부에 따라 각기 다른 코드가 실행된다. 즉, 조건문을 사용하지 않는다면 코드는 위에(또는 앞에) 적혀있는 것 부터 아래로 내려가며 순차적으로 실행이 되나 조건문을 사용할 경우 일부 코드를 뛰어넘어(또는 무시하고) 다른 특정 코드를 실행할 수 있게 된다.

생성 및 동작원리

조건문 if는 “if” 로 코드를 시작하며 “if” 다음에는 반드시 한 칸 띄어쓴다. 그리고 조건식을 배치해야하며 조건식 실행 결과는 반드시 True 또는 False여야 한다. 결과는 복수의 원소나 객체를 허용하지 않으며 True 또는 False의 단일값이 반환되어야 한다. 만약 조건식을 쓰지 않으면 하나의 True 또는 False를 조건식 대신 입력해야 한다.

조건식 뒤에는 콜론(:)을 써서 마무리하고 조건식이 True일 때 실행되는 코드는 한 수준(4칸 띄어쓰기 또는 1Tab)이상 들여쓰기를 해야한다. 특히 이 부분이 조건식에서 빈번하게 일어나는 실수이기 때문에 코드 작성에 유의하도록 한다.

확장

두 개 이상의 분기를 위해서는 “else”, “elif”를 사용할 수 있으며 중첩 if문도 가능하다. “elif”의 경우 뒤에 추가 조건식을 쓸 수 있으며 연쇄적인 조건식을 생성할 때 사용할 수 있다.

실습

가장 기본적인 조건문을 작성해보자. 다음은 조건식 대신 True 또는 False가 들어있는 조건식이다. 만약 True가 입력이 된다면 1수준 들여쓰기가 된 코드가 실행되며 여기서는 print() 함수가 실행된 결과를 확인할 수 있다.

1
2
3
4
5
6
if True:
print(1)
## 1

if False:
print(2)

그런데 TrueFalse는 실제 연산에서 1 또는 0으로 사용되는 것을 알고 있을 것이다. 이 성질을 이용하면 다음과 같이 True 대신 1을 입력하고 False 대신 0을 입력해도 똑같이 동작하는 것을 확인할 수 있다.

1
2
3
4
5
6
if 1:
print(1)
## 1

if 0:
print(2)

이번에는 단순 print() 함수 말고 다른 코드가 들어있는 조건문을 사용해보자.

1
2
3
4
5
6
ee = 1
if True:
ee = ee + 100

ee
## 101

이제 True 또는 False가 아닌 조건식을 사용하는 if문을 작성해보자.

1
2
3
4
5
6
7
8
9
10
val_1 = 30
print(val_1 > 15)
## True

if val_1 > 15: # True
print(val_1 * 3)
## 90

if val_1 < 15: # False -> 실행 안됨.
print(val_1 * 30)

이번에는 조건식에 “else”를 더한 코드이다. 이제 조건식의 결과값이 False이더라도 실행되는 코드가 없는 것이 아닌 “else” 뒤에 한 수준 들여쓰기된 코드가 실행된다.

1
2
3
4
5
6
7
val_2 = 50

if val_2 > 100: # False --> else에 속한 코드가 실행됨.
print("GT100") # (GT)Greater Than
else:
print("LE100") # (LE)Less than Equal
## LE100

이제는 “elif”와 추가 조건식 까지 추가해보자.

1
2
3
4
5
6
7
8
9
val_3 = 50

if val_3 > 100: # False --> else에 속한 코드가 실행됨.
print("GT100") # (GT)Greater Than
elif val_3 >= 50:
print("GE50") # (GE)Greater than Equal
else:
print("LT50")
## GE50

<주피터 노트북 시작하기 시리즈>
01 - 아나콘다 설치
02 - 직접 파이썬&주피터 노트북 설치
03 - 주피터 노트북 문제 해결
04 - 주피터 노트북 바로가기 아이콘 생성

<파이썬 데이터분석 기초 시리즈>
01 - 원소
02 - 연산자
03 - 함수
04 - 객체(리스트)
05 - 객체(튜플)
06 - 객체(딕셔너리)
07 - 객체(세트)
08 - 객체(기타)
09 - 제어문(if)
10 - 제어문(for)
11 - 기본함수
12 - 라이브러리
13 - 경로
14 - NumPy
15 - Pandas
16 - Pandas(Series)
17 - Pandas(DataFrame)
18 - Pandas(객체 탐색)
19 - Pandas(원소/조합 세기)
20 - Pandas(파일 읽어오기)
21 - Pandas(파일 쓰기)
22 - Pandas(필터링)
23 - Pandas(수치연산)
24 - Pandas(신규 변수 생성)
25 - Pandas(시간 데이터)
26 - Pandas(문자 데이터)
27 - Pandas(결측값 처리)
28 - Pandas(정렬)
29 - Pandas(GroupBy)
30 - Pandas(Apply)
31 - Pandas(Crosstab)
32 - Pandas(Melt)
33 - Pandas(Pivoting)
34 - Pandas(Merge)
35 - Pandas(그래프)
36 - 파일 인코딩 확인

<파이썬 통계 시리즈>
01 - 표본추출
02 - 조건부 확률
03 - 기술통계(위치 통계량)
04 - 기술통계(변이 통계량)
05 - 기술통계(모양 통계량)
06 - 베르누이 분포
07 - 이항 분포
08 - 포아송 분포
09 - 기하 분포
10 - 정규 분포 작성 중🚧
11 - t 분포 작성 중🚧
12 - 지수 분포 작성 중🚧
13 - 감마 분포 작성 중🚧
14 - 카이제곱 분포 작성 중🚧
15 - 와이블 분포 작성 중🚧
16 - 상관분석
17 - 정규성 검정
18 - 등분산 검정(f-test) 작성 중🚧
19 - 등분산 검정(Bartlett-test) 작성 중🚧
20 - 등분산 검정(Levene-test) 작성 중🚧
21 - t 검정(단일표본)
22 - t 검정(대응표본)
23 - t 검정(독립표본) 작성 중🚧
24 - 일원 분산분석 작성 중🚧
25 - 선형 회귀분석 작성 중🚧
26 - 이항 로지스틱 회귀분석 작성 중🚧

<파이썬 머신러닝 시리즈>
01 - 데이터 분할-01
02 - 데이터 분할-02
03 - 정규화
04 - 원핫 인코딩
05 - 모델평가(분류모델)
06 - 모델평가(회귀모델)
07 - 모델평가(Permutation Importance)
08 - 모델평가(Drop Column Importance)
09 - 학습전 데이터 핸들링(분류모델-01)
10 - 학습전 데이터 핸들링(회귀모델-01)
11 - 학습전 데이터 핸들링(군집분석-01)
12 - 선형 회귀분석
13 - 로지스틱 회귀분석
14 - kNN
15 - 의사결정나무
16 - k-Means 분집분석 작성 중🚧
17 - 계층적 군집분석 작성 중🚧
18 - DBSCAN 작성 중🚧
19 - GMM 작성 중🚧
20 - 이상치 트러블 슈팅 실무 작성 중🚧
21 - OHE 트러블 슈팅 실무 작성 중🚧
22 - Lable Encoding 트러블 슈팅 실무 작성 중🚧

xx - Ridge 회귀 작성 중🚧
xx - LASSO 회귀 작성 중🚧
xx - Elastic Net 작성 중🚧
xx - GBM 작성 중🚧
xx - XGB 작성 중🚧
xx - LightGBM 작성 중🚧

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×