-
[PlayData - Day 3] if 제어문, for / while 반복문[플레이데이터] 2022. 12. 21. 16:39
1. K-Digital Training 과정
- 빅데이터 기반 지능형SW 및 MLOps 개발자 양성과정 19기 (Day 3)
2. 목차
- 제어문: 조건에 따르는 if문
- 반복문: 지정된 범위만큼 반복하는 for문
- 반복문: 조건에 따라 반복하는 while문
- 반복문을 제어하는 break와 continue
- 간단하게 반복하는 한 줄 for문 + if문
3. 수업 내용
1. 제어문: 조건에 따르는 if문
- 단일 조건에 따른 분기
x=95 if x >= 90: print("pass") > pass
- 단일 조건 및 그 외 조건에 따른 if문
x = 75 if x>=90: print("Pass") else: print("Fail") > Fail x = 85 if x >= 90: print("Very Good") elif (x>=80) and (x<90): print("Good") else: print("Bad") > Good x = 85 if x >= 90: print("Very Good") elif 80 <= x < 90: print("Good") else: print("Bad") > Good
- 중첩 조건에 따른 분기
x = 100 if x >= 90: if x==100: print("Perfect") else: print("Very Good") elif 80 <= x < 90: print("Good") else: print("Bad") > Perfect # 나중에 구현하고 싶을 때는 Pass를 활용 x = 75 if x >= 80: pass else: print("Bad") > Bad
2. 반복문: 지정된 범위만큼 반복하는 for문
- 반복문의 필요성
a = 0 # 변수 a를 0으로 초기화 print(a) # 변수 a 출력 a = a + 1 # 변수 a에 1을 더한 후, 다시 a에 대입 print(a) # 변수 a 출력 a = a + 1 # 같은 코드 반복 print(a) a = a + 1 # 같은 코드 반복 print(a) a = a + 1 # 같은 코드 반복 print(a) a = a + 1 # 같은 코드 반복 print(a) > 0 > 1 > 2 > 3 > 4 > 5 # 리스트를 이용한 for문 for a in [0,1,2,3,4,5]: print(a) > 0 > 1 > 2 > 3 > 4 > 5 myFriends = ['James', 'Robert', 'Lisa', 'Mary'] for myFriend in myFriends: print(myFriend) > James > Robert > Lisa > Mary
- range() 함수 활용: range(start, stop, step)
# 리스트 형태로 출력해야한다 print(list(range(0,10,1))) > [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(list(range(1,10,2))) > [1, 3, 5, 7, 9] # 반복문에 range() 함수 활용 for a in range(0,6,1): print(a) > 0 > 1 > 2 > 3 > 4 > 5
- 중첩 for 문
x_list = ['x1', 'x2'] y_list = ['y1', 'y2'] print(' x y') for x in x_list: for y in y_list: print(x, y) > x y > x1 y1 # x for문의 첫번째, y for문의 첫번째 > x1 y2 # x for문의 첫번째, y for문의 두번째(x for문 끝) > x2 y1 # x for문의 두번째, y for문의 첫번째 > x2 y2 # x for문의 두번째, y for문의 두번째
- 여러 개의 리스트 다루기
names = ['James', 'Robert', 'Lisa', 'Mary'] scores = [95, 96, 97, 94] for k in range(len(names)): # len: 리스트의 길이 print(names[k], '\t', scores[k]) > James 95 > Robert 96 > Lisa 97 > Mary 94 for name, score in zip(names, scores): # zip: 같은 위치의 데이터끼리 묶어준다 print(name, '\t', score) > James 95 > Robert 96 > Lisa 97 > Mary 94 a = zip(names, scores) print(a, '\n', id(a), '\n', list(a)) > <zip object at 0x00000208EFB457C0> > 2237404567488 > [('James', 95), ('Robert', 96), ('Lisa', 97), ('Mary', 94)]
3. 조건에 따라 반복하는 while문
- while문의 구조
i = 0 # 초기화 sum = 0 # 초기화 print("i sum") while sum < 20: # 조건 검사 i = i+1 # i를 1씩 증가 sum = sum +i # sum과 현재 i를 더해서 sum을 갱신 print(i, sum) > i sum > 1 1 > 2 3 > 3 6 > 4 10 > 5 15 > 6 21
4. 반복문을 제어하는 break와 continue
- 반복문을 빠져나오는 break
k=0 while True: k = k + 1 # k는 1씩 증가 if k > 3: # k가 3보다 크면 break # break로 while문을 빠져나옴 print(k) # k 출력 > 1 > 2 > 3 for k in range(10): if k > 2: # k가 2보다 크면 break # break로 for문을 빠져나옴 print(k) > 0 > 1 > 2
- 다음 반복을 실행하는 continue (건너뛰기)
for k in range(5): if k == 2: continue print(k) > 0 > 1 > 3 > 4 k = 0 while True: k+=1 if k == 2: print("continue next") continue if k > 4: break print(k) > 1 > continue next > 3 > 4
5. 간단하게 반복하는 한 줄 for문
- 컴프리헨션(comprehension)의 기본 구조
- 리스트 컴프리헨션
[<반복실행문> for <반복변수> in <반복범위>]
#### 일반 for문 numbers = [1,2,3,4,5] square = [] for i in numbers: square.append(i**2) print(square) > [1, 4, 9, 16, 25] #### 컴프리헨션 numbers = [1,2,3,4,5] square = [i**2 for i in numbers] print(square) > [1, 4, 9, 16, 25]
- 조건문을 포함한 컴프리헨션
- [<반복실행문> for <반복변수> in <반복범위> if <조건문>]
#### 일반 for문 + if문 numbers = [1,2,3,4,5] square = [] for i in numbers: if i >= 3: square.append(i**2) print(square) > [9, 16, 25] #### 컴프리헨션 numbers = [1,2,3,4,5] square = [i**2 for i in numbers if i >= 3] print(square) > [9, 16, 25]
'[플레이데이터]' 카테고리의 다른 글
[PlayData - Day 5] 함수 (0) 2022.12.26 [PlayData - Day 4] 입력과 출력 (0) 2022.12.22 [PlayData - Day 2] 파이썬 변수 타입 (0) 2022.12.20 [PlayData - Day1] 과정 개요와 Python 기초 (0) 2022.12.19 [PlayData] 데이터 사이언스 부트캠프 - 데이터 엔지니어링 트랙 (0) 2022.12.19