11. 컨테이너와 반복문
1. 공부한 내용
1) 반복문을 이용해서 컨테이너를 다루는 방법 숙지 (중복 삭제)
2) while 보다 좀 더 간결하게 표현 가능한 for in 코드를 활용한 반복문 작성 방법 숙지
3) for문 응용 활용법 숙지
2. 실습 내용
입력 코드 | 결과 | 설명 |
members = ['SDM', 'Single', 'Seoul'] print(members[0]) print(members[1]) print(members[2]) | SDM Single Seoul | 단순 컨테이너의 원소값을 Index 순서대로 반복 출력함 반복되는 코드가 3개를 아래와 같이 반복문을 통해 중복 삭제 가능 |
members = ['SDM', 'Single', 'Seoul'] i = 0 while i < len(members): print(members[i]) i = i + 1 | SDM Single Seoul | 출력 결과는 상기의 코드와 같으나 코드 자체가 간결해짐 < len(members) >를 통해 members 라는 컨테이너에 들어간 원소 갯수에 맞춰 원소값을 모두 출력 이 경우 list의 원소값이 3개고 i가 원소값보다 작을 때 True 이기 때문에, 0~2까지의 index가 출력됨 (i = i + 1) 즉, 저 상태로 list에 원소값을 추가/수정하는 것으로 출력값에 반영됨! |
members = ['SDM', 'Single', 'Seoul'] for member in members: print(member) | SDM Single Seoul | for in문을 통해 members 라는 list(컨테이너) 안의 원소값을 순서대로 반복하여 출력함 즉, for 뒤에는 해당 list의 원소값을 꺼낼 변수를 지정 후 뒤에 list가 옴 -> for 변수값 in list(컨테이너) = for member in members 따라서 for in문 뒤에 오는 <print(member)>에는 members의 원소값이 담겨서 순서대로 반복되어 출력됨 * 위의 while 코드와 결과값은 같으나 작성된 코드가 간결하며 다른 코드에 영향 받을 가능성이 적음 |
for item in range(5, 11): print(item) | 5 6 7 8 9 10 | range는 반복 범위를 지정하는 코드이며 5, 11인 경우 5부터 6번(11) 실행되면서 <item>이라는 변수에 담겨 5,6,7,8,9,10의 숫자가 출력됨 만약 <print(item)> 부분을 <print(hello)>로 수정하면, hello가 6번 반복 출력됨 |
input_id=input("아이디를 입력해주세요. \n") ids = ['har', 'space', 'SDM'] for id in ids: if id == input_id: print('Hello!, ' +id) import sys sys.exit() print('who are you?') | 아이디를 입력해주세요 (입력) har (출력) Hello!, har (입력) space (출력) Hello!, space (입력) SDM (출력) Hello!, SDM (입력) adsahkdasjdlk (출력) who are you? | 전제 1) ids 라는 list에 3개의 id가 존재함 전제 2) <for id in ids:> 코드를 통해 ids의 list 갯수만큼 3번 반복됨 전제 3) for문 안에 if 조건문 <if id == input+id:> 추가하여 입력한 id(input_id)가 id(ids의 각 3개의 원소)와 True일 때, if문 안에 적은 <print("Hello!, ' +id)> 가 출력됨 이후 <import sys, sys.exit()>를 통해 for 반복문 종료 전제 4) if문이 False면 if문 밖에 있는 <print('who are you?')>가 출력됨 * 단순히 코드를 작성하는 게 아닌, 위와 같이 풀어서 생각하는 게 중요! |
3. 응용 내용
기존 코드 | 학습 응용 코드 | 결과 | 설명 |
i = 0 while i < 10: print('print("Hello world '+str(i*9)+'")') i = i + 1 | for i in range(10): print('print("Hello world '+str(i*9)+'")') | print("Hello world 0") print("Hello world 9") print("Hello world 18") print("Hello world 27") print("Hello world 36") | 기존에 while 반복문으로 작성한 것을 for문을 통해 좀 더 간결하게 작성함 결과는 완전 동일하나 입력 코드는 네 줄에서 두 줄로 많이 줄어듬!!! |
4. 의미/중요한 부분
1) 이번 시간을 통해 좀 더 반복문과 컨테이너 개념의 이해를 높힐 수 있었던 거 같음!
2) for문은 while문과 대비하여 반복해야 하는 횟수 변수(while의 i)를 별도로 지정하지 않아도, range로도 해결 가능함. 고로 다른 코드에 영향 받을 가능성이 낮음!
3) for <변수명> in <변수에 들어갈 내용(range 혹은 list)>를 꼭 기억하자! for는 in 뒤에 들어가는 list의 갯수 또는 range 범위에 따라 반복 횟수가 정해짐
4) for문은 별도의 반복 중지<import sys, sys.exit()>를 넣어주지 않으면 반복이 계속됨 (...맞나?)
5. 궁금점/감상
1) 기존에 배운 코드를 이번에 배운 코드로 바꿔서 응용해보니 신기하기도 하고... 앞으로 이런 응용 학습을 자주 해야 겠다고 생각함