-
[Python] 반복문 while문, for문, list comprehension데이터분석/Python 2023. 3. 27. 21:52
저번 포스팅에서는 조건문에 대해 공부했는데요,
이번엔 반복문에 대해 알아보겠습니다.
while 문
반복문은 크게 두 가지로 구분할 수 있는데, 그 중 하나가 while 문입니다.
while 문은 조건이 True일 때 그 블록 안에 해당하는 코드를 반복적으로 수행할 때 사용합니다.
while 문의 기본 구조는 다음과 같습니다.
while <조건문>: <수행할 문장 1> <수행할 문장 2> ...
예제를 보겠습니다.
while 문의 예시로 많이 쓰이는 게 '10번 찍어 안 넘어가는 나무 없다' 속담을 코드로 구현하는 건데요.
다음과 같이 적을 수 있습니다.
hit이 10번 될 때까지 계속 찍다가 10번을 찍으니 넘어가는 것을 의미합니다.
while 문은 조건이 True일 때 while 문 안의 코드들을 무한 반복하기 때문에
강제로 while 문에서 빠져나가는 방법도 알아야 합니다.
예를 들어, 지갑에 있는 돈을 다 쓰면 더 이상 구매할 수 없는 것처럼
구매를 멈추게 하는 코드가 break 문입니다.
커피 자판기 예제를 들어보겠습니다.
현재 커피가 자판기에 5개 있고 커피 한 잔에 500원이라고 합시다.
input을 통해 사용자에게 금액을 입력받고 커피가 다 떨어지면 반복문을 종료하겠습니다.
500원이면 커피를 한 잔 주고,
500원보다 적게 받으면 실패를 출력하고,
500원보다 많이 받으면 커피를 한 잔 주고 거스름돈을 돌려주는 코드를 짜보겠습니다.
이렇게 남은 커피가 0개가 되면 반복문을 빠져나올 수 있게 해주는 게 바로 break 문입니다.
반복문에서 특정 조건은 건너뛰고 다음 루프로 넘어가고 싶을 때는 continue 문을 쓸 수 있습니다.
예를 들어, while 문으로 1부터 10 사이의 홀수만 출력할 땐 다음과 같이 작성합니다.
for 문
for 문은 파이썬에서 가장 많이 쓰이는 반복문입니다.
while 문과 다르게 리스트, 튜플, 문자열의 시작부터 끝까지가 변수에 대입되어
코드가 반복된다고 볼 수 있습니다.
for문의 기본 구조는 다음과 같습니다.
for 변수 in 리스트(또는 튜플, 문자열): 수행할 문장 1 수행할 문장 2 ...
for 문을 배울 때 가장 대표적으로 사용하는 예시가 구구단입니다.
간단하게 2단만 살펴볼까요?
위 예시는 for 문으로 만들 수 있는 구구단 2단을 3가지 방법으로 표현해본 것입니다.
첫 번째는 f-string, 두 번째는 형 변환, 세 번째는 포맷팅을 이용한 코드입니다.
그렇다면 구구단을 전체를 나타내려면 어떻게 해야 할까요?
위 코드와 같이 이중 for 문을 이용해서 나타낼 수 있습니다.
i가 2일 때 j가 1부터 9까지 들어가고,
끝나면 i가 3이 되는 식으로 루프가 돌아가는 것을 보실 수 있습니다.
for 문 안에 조건문이 들어가는 예제도 한번 보겠습니다.
예를 들어, 학생들의 점수가 담길 리스트에서 60점 이상인 학생에게만
합격을 출력하는 반복문을 만들어 보겠습니다.
list comprehension
마지막으로 for문을 좀 더 간단하게 표현할 수 있는 리스트 컴프리헨션에 대해 배워볼게요!
먼저 구조는 다음과 같습니다.
[표현식 for 항목 in 반복가능객체 if 조건문]
이것만 보면 무슨 말인지 모르겠죠?
예시를 보여드리겠습니다.
만약 for 문을 사용해서 1부터 100까지 정수 중 짝수만 리스트로 담고 싶다면 다음과 같이 할 수 있습니다.
먼저 빈 리스트를 하나 만든 뒤 for 문 안에 조건문을 넣어서
짝수만 판별해 append 함수로 빈 리스트 안에 넣어주는 작업이 필요하죠.
그렇다면 리스트 컴프리헨션을 이용하면 어떻게 될까요?
같은 결과인데 훨씬 짧은 코드로 표현이 가능하죠?
list comprehension을 만드는 것도 파이썬에서 자주 쓰이기 때문에
잘 알아두면 좋습니다 😊
이렇게 이번 포스팅에서는 반복문에 대해 공부했습니다.
다음 포스팅까지 조건문과 반복문 반복하기! 😉
'데이터분석 > Python' 카테고리의 다른 글
[Python] 함수 (2) 2023.03.29 [Python] 조건문 if (0) 2023.03.24 [Python] 변수 (0) 2023.03.22 [Python] 파이썬 데이터 타입 (2) (0) 2023.03.21 [Python] 파이썬 데이터 타입 (1) (0) 2023.03.21