비교적 빨리 돌아 왔습니다!
이번 포스팅에서는 파이썬의 반복문에 대해 알아보도록 하겠습니다.
파이썬 반복문에도 C++의 반복문과 마찬가지로 for문과 while문이 있다. 이 둘의 활용 방식도 거의 똑같다고 해도 무방하다. 먼저, for문은 반복해야할 숫자를 알고 있는 경우에 반복 횟수를 지정해서 원하는 만큼 반복하는 반복문을 작성할 때 활용한다. 반면 while문은 반복 횟수를 지정해주지 않아도 반복문을 작성해줄 수 있기 때문에 for문 보다 넓은 범위에서 활용된다. 즉, 1부터 100까지의 반복이 필요할 때는 for문을 활용해서 작성해주고 사용자에게 숫자를 입력받아 해당 숫자만큼 반복해주는 반복이 필요할 때는 while문을 사용하는 것이 효율적이라는 것이다. 그렇다면 for문과 while문을 파이썬의 문법으로는 어떻게 작성해줘야할까? for문의 작성법부터 바로 아래에서 알아보자!
for문은 파이썬에서 리스트에 대한 반복으로 사용된다. 따라서 문법은 아래와 같다.
for 변수 in 리스트명:
실행할 문장1
실행할 문장2
위의 코드는 특정 리스트가 있고 해당 리스트에 대해서 반복을 수행하는 for 문이다. 그러나 우리가 반복을 원할때 항상 특정 리스트를 활용해서 반복문을 작성해줄 수는 없다. 이때 파이썬에서 for 문과 자주 사용되는 것이 바로 range 함수다. range 함수는 지정한 범위의 정수 리스트를 반환한다. range 함수의 작성법은 아래와 같다.
range(시작값, 원하는 끝값 +1, 증가값)
#range 함수 예시
range(10) # 0~9 까지의 정수를 갖는 리스트를 반환
range(0, 5) # 0~4 까지의 정수를 갖는 리스트를 반환
range(0, 10, 2) # 0~9 까지의 정수 중 0을 포함한 9까지 양의 정수를 갖는 리스트를 반환
이때 시작값과 증가값은 생략할 수 있다. 이 경우 시작값은 자동으로 0을 갖게 되고 증가값은 1을 기본으로 갖게 된다. 이제 range 함수를 for문에 적용한 예시를 보자.
for i in range(5): # 0~4 까지의 정수를 반환
print(i)
for i in range(3, 8): # 3~8 까지의 정수를 반환
print(i)
for i in range(10, 0, -1): # 10에서 1 까지의 정수를 -1씩 내려가며 반환
print(i)
이번에는 이중 for문에 대해 알아보겠다. 이중 for문은 반복문 안에 또 다른 반복문이 있는 형태를 갖는다. 다른 말로 중첩 반복문이라고도 하며 외부/내부 반복문이 있다. 이 중 내부 반복문은 외부 반복문이 실행될 때마다 새로 실행하게 된다.
for y in range(7):
for x in range(5):
print(f"x: {x}, y: {y}")
print() #내부 반복문이 종료될때마다 실행되며 결과값 사이에 공백을 만들어 주는 게행 역할을 수행함
while 문은 조건식이 참이면 문장이 끝나는 곳까지 진행한 후 조건식으로 돌아오는 것을 반복한다. 반복 구간이 없으므로 끝을 의미하는 문장을 사용해서 반복문을 종료시키게 된다. 문법은 아래와 같다.
while 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
while 문을 작성할 때 가장 주의해야하고 흔히하는 실수가 끝을 의미하는 문장을 제대로 사용하지 않아서 무한 반복에 빠지는 것이다. 무한 반복문을 실행했을 경우 프로그램을 닫는 것 말고는 반복문이 끝나지 않으므로 주의하자! 아래의 예시가 무한 반복의 전형적인 사례이다.
while True:
print("11주차 파이썬 블로깅")
이 경우, 무한히 "11주차 파이썬 블로깅"을 출력하게된다. 이런 while 문을 종료시키기 위해 사용하는 것이 break이다. 특정 조건이나 반복문을 탈출시키고 싶은 조건에 break를 추가해서 해당 조건이 충족되면 반복문을 탈출하도록 만들어줄 수 있다. 위의 예시를 활용해서 break를 사용한 예시를 보여주겠다.
count = 0
while True:
print("11주차 파이썬 블로깅")
if count < 3:
break
count += 1
위의 코드에서 count가 3일때 반복문을 탈출하기 위해 break를 사용해줬으므로 "11주차 파이썬 블로깅"이 3번 출력된 후 반복문을 탈출하게 된다.
continue문 역시 파이썬의 반복문에서 사용된다. continue는 코드가 진행되다가 continue를 만나는 순간 나머지 코드를 무시하고 반복문의 조건문으로 올라가 다시 반복문을 돌아가게 된다. 아래 예시를 통해 살펴보자.
num = 0
while num < 10:
num = num + 1
if num % 2 == 0:
continue
print(num)
위 코드는 총 10회 반복 동안 num이 짝수가 될 경우 continue를 사용해서 다시 반복문의 처음으로 돌아가게 구성되어있다. 따라서 해당 코드를 실행하면 홀수만 출력되는 것을 확인할 수 있다. 이렇듯 continue와 break를 사용해서 반복문을 자유자재로 조절할 수 있으니 유용하게 사용하면 되겠다.
파이썬을 하면 할수록 C++을 미리 배울 수 있어서 다행이라는 생각이 든다. 아무런 기초도 없이 C++을 배웠을 때 보다는 더 빨리 조금이라도 더 깊게 이해할 수 있었다. 파이썬에 대한 갈증이 있었던 만큼 재밌게 배우고 있어서 만족감도 크다. 역시 뭐든지 기초를 탄탄히 하는 것이 중요해 :) 그럼 다음 포스팅에서 돌아오겠다. 모두 안녕히.
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 13 주차 프로젝트 회고 |데이터분석 프로젝트 (1) | 2023.06.18 |
---|---|
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 12 주차 회고 | 데이터 분석(with kaggle) (0) | 2023.06.09 |
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 10 주차 회고 | 신호등 PLC 프로젝트 (0) | 2023.05.25 |
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 9 주차 회고 | PLC - 펑션블록(카운트), 사용자 정의 펑션/펑션블록 (0) | 2023.05.18 |
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 9 주차 회고 | PLC - 펑션블록, 타이머 (0) | 2023.05.17 |