이번에는 파이썬의 반복
을 배워봅시다
프로그래밍을 하다보면 같은 내용을 여러번 작성해야 할 때가 많습니다.
우리가 좋아하는 ctrl+c ctrl+v
기능이 있지만 이것도 수천번, 수만번을 할 수는 없습니다.
이번 시간에 반복문을 배워서 코드 몇줄로 수만번의 작업을 할 수 있도록 해 보겠습니다.
자 그럼 특정 내용을 반복하려면 무엇이 필요할까요?
바로 반복할 내용
과 조건
입니다.
위 두가지를 지정해 주면 '조건'에 맞는 상황동안 반복할 내용
을 계속 반복합니다.
예를 들어 1부터 100까지 숫자가 1씩 늘어나면서 화면에 출력되게 하려면
1부터 숫자를 1씩 늘려가면서 출력하는 작업을 그 숫자가 100이 될때까지 반복해주면 되겠죠?
그럼 본격적으로 코드를 통해 배워봅시다.
첫번째로, for문에 대해서 알아봅시다.
일단 for 문은
for 변수 in range(조건):
반복할 내용
이렇게 생겼습니다.
저렇게 보면 사실 뭐가 뭔지 잘 감이 안오니까 아래의 예제와 함께 한번 천천히 뜯어보겠습니다.
for i in range(1,101,1):
print(i)
자 위 코드를 보겠습니다. 위에 기본 생김새와 비교하자면 변수는 i
이고, 조건은(0,100,1)
, 반복할 내용은print(i)
가 되겠죠?
- 변수
i
: 조건을 만족하기 위한 변수입니다. 조건과 함께 보시겠습니다. - 조건
(1,101,1)
:변수 i를 1에서 부터 1씩 증가시켜, 101이 되면 반복을 멈춰라
라는 말입니다. - 반복할 내용
print(i)
: i를 화면에 출력해라.
그럼 합쳐볼까요?
변수 i는 1부터 시작해서 i를 한번 출력하고, 1을 증가시킨 후,
다시 i를 출력하고, 또 i를 1 증가시킨 후, ... ,
i가 101이되면 멈춰라
결국 저 두줄의 코드는 1부터 100까지의 숫자를 화면에 출력하는 코드였습니다.
왜 100이 아니고 101인가요? 하시는 분들이 계실텐데, 위처럼 조건을 설정하면 i가 101이 되는순간 반복문이 끝나버리기 때문에 그렇습니다.
비슷한 내용의 조건이 다른 코드들을 몇가지 적어 둘테니 어떤 차이가 있는지 직접 실행해서 확인해보면 도움이 될것입니다.
for i in range(1,11):
print(i)
for i in range(11):
print(i)
for i in range(1,11,2):
print(i)
for i in range(1,11):
print(i, end=", ")
두번째로는 while문에 대해서 알아보겠습니다.
어떻게 생겼는지부터 볼까요?
while 조건:
반복할 내용
이것도 예시를 통해 파헤쳐보겠습니다.
i=1
while i<101 :
print(i)
i+=1
while문
은 for문
과 달리 변수를 문장 밖에서 지정해 줍니다. 우리는 1부터 출력하고 싶으니까 1로 지정해 줬습니다.
조건은 i<101
이 참이면 반복한다는 뜻입니다.
다시 말하면 i가 101보다 작을때는 내용을 반복해주고, 101이 되는순간 조건이 거짓이 되므로 반복을 멈추고 종료합니다.
내용도 for문
과는 조금 다른데요, while문
에서는 변수 i를 직접 더해줘야합니다.
여기서도 우리는 1씩 더하고 싶으니까 1씩 더해줬습니다.
그렇다면 위 코드의 결과값은 뭘까요?
그렇습니다. 위 코드 역시 1부터 100까지의 숫자를 출력하는 문장입니다.
여기서 의문이 드실 수 있습니다.
어? while문이랑 for문이랑 별 차이도 없는데 왜 분리하는거야?
라거나,
for문은 2줄밖에 안쓰는데 while문은 4줄이나 써야되는데 왜쓰는거야?
같은 의문들 말입니다.
for문
은 정해진 범위 내에서 반복하는 기능을 한다면,
while문
은 조건이 참인 동안은 계속 반복합니다.
예시를 볼까요?
i=1
while True:
print(i)
라는 문장은 조건이 언제나 참이기 때문에 1을 출력하는 내용을 무한히 반복합니다.
무한히 반복하는 법을 알았으니 반복을 탈출하는 법도 알아보겠습니다.
i=1
while True:
print(i)
i+=1
if i==20:
break
탈출조건을 만들기 위해 조건문 if
를 사용했습니다. 모르신다면 반복문 조건을 보고 오세요!
위 코드를 살펴보면 i가 1씩 증가하면서 출력되다가 i가 20이 되는순간 break
를 만나서 탈출하는 모습을 보실 수 있습니다.
이렇듯 while문
은 더 다양한 조건을 통해 문장을 반복할 수 있습니다.
혹시 반복문 한번으로는 너무 쉬우신가요? 너무 지루해서 하기 싫다구요?
그런 여러분들을 위해 준비한 것이 있습니다. 바로 반복문 속의 반복문
입니다! 이를 잘 활용한다면 반복문 속의 반복문 속의 반복문 속의 반...
도 하실수 있습니다!
간단한 예를 볼까요?
for i in range(5):
for j in range(5):
print(i,j)
위 문장의 실행결과가 어떻게 될까요?
맞습니다. (0,0) (0,1) (0,2) ... (4,3) (4,4)까지 출력됩니다.
물론 for문
만이 아니라 while문
만으로도, 혹은 섞어서도 만들 수 있습니다.
이를 이용하면 전공 학부생들이 정말 싫어하는
* * ***** *
** *** **** ***
*** ***** *** *****
**** ******* ** ***
***** ********* * *
이런 별모양 만들기도 가능합니다! 이런 별모양 만들기는 반복문 연습에 도움이 많이 되니까 꼭 만들어 보세요.
이번 시간에는 반복문
, 그중에서도 for문
과 while문
에 대해서 알아보았습니다.
코딩을 하다보면 여러가지 문장을 조건에 맞게 다양하게 반복해야 할 일이 많은데요, 오늘 배운 반복문들을 잘 정리하신다면
충분히 잘 헤쳐나가실 수 있습니다. 물론 오늘 배운 것이 반복문의 전부는 아닙니다. 추가적으로 궁금하신것이 생긴다면 구글님께 물어보도록 합시다!