안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.
[코딩유치원 기초문법 강의]
2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형
2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형
2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?
2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형
2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형
2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형
2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)
2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)
2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)
2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리
2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법
2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법
코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.
마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.
문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!
오늘은 3가지 제어문 중, for문에 대해서 공부해보겠습니다.
for문 기초
for문을 한마디로 설명하자면 효율적인 코드 반복을 위한 제어문입니다. 기본 형태는 아래와 같습니다.
for 변수 in 리스트(or 튜플):
실행할 코드 1 (주로 변수가 포함된 코드)
실행할 코드 2 (주로 변수가 포함된 코드)
for문은 리스트 안의 요소들을 차례대로 하나씩 가져와서 변수에 대입한 후, for문 안에 위치한 코드를 실행합니다.
이때, 변수는 카운터 변수(counter variable)라고도 부르는데, for문 내에서만 존재하고 for문이 끝나면 사라지는 변수라는 점 참고해주세요. 이 변수는 당연히 마음대로 이름지어 사용할 수 있습니다. 가독성을 위해 변수명을 단어로 넣어주기도 하지만 통상적으로 i 또는 j로 이름 짓습니다.
아주 단순한 예시 코드를 한 번 보면서 어떻게 작용하는지 보도록 하겠습니다.
a = [1,2,3] # 리스트를 변수에 넣어서 in 뒤에 입력해도 되고, 바로 in [1,2,3]으로 넣어줘도 됨
for i in a:
print(i)
<코드 실행 결과>
1
2
3
1) 리스트 안의 첫번째 요소인 1을 i에 대입해주고, print(1)을 해줍니다. --> 터미널 창에 1 출력
2) for문 내의 코드가 모두 실행된 후, 그 다음 리스트 요소인 2를 i에 대입해줍니다. print(2) --> 터미널 창에 2 출력
3) 동일하게 print(3)을 실행 --> 터미널 창에 3출력
만약 변수가 for문의 실행 코드에 들어있지 않다면 어떻게 될까요? 간단합니다. 단순히 리스트의 요소의 갯수만큼 반복하는 코드가 됩니다.
확인해보고 싶으신분들은 위의 코드에서 print(i) 대신에 print("hello")를 입력해보세요. hello가 3번 출력되는걸 확인할 수 있으실 거에요.
for문의 쓰임
for문은 앞서 언급했듯이 반복을 위한 제어문입니다. for문을 사용하지 않고 양 100마리를 세는 코드를 작성해 보겠습니다.
print("양 1마리")
print("양 2마리")
print("양 3마리")
print("양 4마리")
print("양 5마리")
print("양 6마리")
print("양 7마리")
print("양 8마리")
print("양 9마리")
print("양 10마리")
print("양 11마리")
print("양..Zzz...")
어이쿠.. 양을 세다가 잠들어 버렸네요. 귀찮아서 다시 하고 싶지는 않으니 for문으로 바로 작성해보겠습니다.
for i in range(1,101):
print("양 %d마리" %i)
단 두 줄로 100줄의 코딩을 대신했습니다. 너무 편하죠?! 결과는 한 번 직접 확인해보시길 바랍니다.
여기서 처음보는 range 함수를 사용했는데, 이 함수 for문과 함께 정말 요긴하게 쓰이니깐 꼭 기억해두세요.
range 함수
range(시작 숫자, 끝 숫자) # 시작 숫자 이상, 끝 숫자 미만의 정수로 이루어진 리스트 자동 생성
range(끝 숫자) # 0 ~ 끝 숫자 미만의 정수로 이루어진 리스트 자동 생성
continue
지난 시간에 while문을 다루면서 치트키 continue에 대해서 배웠었던 것 기억하시나요?
이건 for문에서도 사용가능하니 알아두시면 언제가 써먹을 날이 올 수도 있습니다. 그냥 알아만 두기로하고 자세한 설명은 생략하겠습니다!
*참고. 리스트 내포 (List comprehension)
for문을 배우다가 갑자기 무슨 리스트 내포냐구요? 이건 파이썬 특유의 간단하고 깔끔한 프로그래밍을 극대화 해주는 문법입니다.
리스트 안에 for문을 포함해서 작성할 수 있죠. 한 번 코드로 볼까요?
a = [1,2,3]
b = [i * 2 for i in a]
# [표현식 for 변수 in 리스트]
print(b)
>>> [2,4,6]
변수 b에 들어간 리스트 안을 보시면 "표현식 for 변수 in 리스트" 형식으로 for문이 들어가 있는 것을 볼 수 있습니다.
놀랍게도 리스트 내포는 여기서 끝이 아닙니다. for문 안에 if문도 넣을 있고 for문을 2개 이상 사용하는 것도 가능합니다.
(위에서 설명은 안했지만 당연히 일반적인 for문 안에도 if문과 for문을 넣을 수 있습니다)
<리스트 내포를 이용한 초간단 구구단 결과값 코딩_ 3,6,9단>
result = [x * y for x in range(2,10) if x%3 ==0
for y in range(1,10)]
print(result)
>>> [3, 6, 9, 12, 15, 18, 21, 24, 27, 6, 12, 18, 24, 30, 36, 42, 48, 54, 9, 18, 27, 36, 45, 54, 63, 72, 81]
참고로 for문을 여러개 사용할 때, 꼭 줄을 바꿔줄 필요는 없지만 가독성을 위해서 한 번 줄을 바꿔주는 것이 좋을 듯 합니다.
건너서 아는 프로그래머는 이걸 사용하지 않고 파이썬 for문을 작성한 것을 보며 이럴거면 파이썬 왜 사용하냐고 했다던데..
저는 아직 익숙치가 않아서 사용하지 않지만 여러분들은 나중에 꼭 사용해서 세련된 코드를 작성하시길 바랍니다!
오늘까지 총 3편에 걸쳐서 제어문에 대해서 배워보았습니다.
다음 시간엔 함수에 대해 배워보도록 하겠습니다.
'파이썬 기초 > 기초 문법' 카테고리의 다른 글
[코딩유치원] 파이썬 기초 문법 11편_함수 사용법 (0) | 2021.03.18 |
---|---|
[코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리 (4) | 2021.03.17 |
[코딩유치원] 파이썬 기초 문법 8편_제어문(while문) (0) | 2021.03.15 |
[코딩유치원] 파이썬 기초 문법 7편_제어문(if문) (0) | 2021.03.14 |
[코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형 (4) | 2021.03.13 |