파이썬 기초 문법이 궁금하신 분들은
제 벨로그의 파이썬 왕초보 시리즈를 추천 드립니다.
구글 코랩이나 주피터 노트북에서 직접 작성하며 풀어보세요.😊
반복문은 말 그대로
조건이 상황에 맞으면 수행 코드를 반복하는 것이다.
while 조건문:
수행할 문장 1
수행할 문장 2
수행할 문장 3
이렇게 계속 반복하다가 조건이 참이 아닐 때 멈춘다.
조건문이 항상 참이면 영원히 돌아가버린다.
그렇기 때문에 조건문이 항상 참이 아니게끔 상황이나 조건을 설정해줘야 한다.
조건문이 항상 참이여도
break를 사용하면 강제로 빠져나갈 수가 있다.
while 조건문:
수행할 문장 1
수행할 문장 2
수행할 문장 3
break
continue를 실행하면 조건문으로 돌아간다.
break랑 비슷하지만 반복문을 나가는 게 아니다.
while 조건문:
수행할 문장 1
수행할 문장 2
continue
수행할 문장 3
hit = 0
while hit < 10:
print("hello")
만약 위 코드를 실행한다면 영원히 반복될 것이다.
hit에 넣은 값이 10 미만이면 영원히 반복되는 코드다.
영원히 반복되지 않기 위해 수정해보자.
while hit < 10:
hit = hit +1
hit의 값이 10 미만이면
hit의 값에 1을 더하는 것이다.
hit = 0 으로 상황을 주고 위 코드를 실행해보면
hit은 1로 변한 후 다시 맨 위의 조건문으로 돌아간다.
1은 10보다 작으니 조건문이 수행되고, hit은 2가 된 후 다시 조건문으로 돌아간다.
이렇게 1부터 10까지 나온 후
hit이 10이 되면 조건에 맞지 않아 실행이 되지 않는다.
이번에는 print 함수를 통해 특정 문장이 출력되게 해보자.
hit = 0
while hit < 10:
hit = hit + 1
print("나무를 {}번 찍었습니다.".format(hit))
맨 밑줄은 "나무를 hit번 찍었습니다."를 출력하는 명령어다.
천천히 뜯어보자.
hit에 0을 넣었다.
while문을 보니 hit 값이 10보다 작아서 조건에 맞기 때문에 아래로 내려갔더니
hit에 1을 더한 걸 hit에 넣으라고 한다.
그래서 원래 0이었던 hit이 1이 되었다.
"나무를 1번 찍었습니다."가 출력됐다.
while 조건문이기 때문에 맨 처음으로 돌아간다.
현재 hit 값은 1이고, while문을 보니 여전히 10보다 작아서 조건에 맞기 때문에 아래로 내려간다.
hit에 1을 더하면 2. 이걸 hit에 넣어서 hit은 2가 되었다.
"나무를 2번 찍었습니다."가 출력됐다.
이런 식으로 반복하다 보면 아래 사진처럼 출력된다.
hit이 10이면 "나무가 쓰러졌습니다."가 나오는 코드를 만들어보자.
hit이 10이면 while문의 조건과 맞지 않아서
if문으로 넘어간다.
if문을 봤더니 hit이 10과 같으면 "나무가 쓰러졌습니다."를 출력하라고 한다.
코드를 돌리면 사진처럼 잘 출력되는 걸 확인할 수 있다.
coffee = 10
while True:
coffee = coffee -1
위 코드는 돌리면 안된다.
조건을 따로 안 주고 True라고 주면
상황이 어떻든 계속 맞는 조건이기 때문에 무한 반복된다.
coffee 값이 -999999999999 그 너머까지 계속 반복되는 코드다.
coffee = 10
while True:
coffee = coffee -1
print("커피를 팔고, {}잔 남았습니다.".format(coffee))
if coffee == 0:
print("매진되었습니다.")
위의 코드는 나무꾼 코드와 비슷하지만
while문의 조건이 True기 때문에
실제로 돌리면
커피를 팔고, 9잔 남았습니다.
커피를 팔고, 8잔 남았습니다.
커피를 팔고, 7잔 남았습니다.
.
.
.
매진되었습니다.
커피를 팔고, -1잔 남았습니다.
커피를 팔고, -2잔 남았습니다.
.
.
.
(무한)
으로 값이 나온다.
0잔에서 멈추게 하려면 어떻게 하면 될까?
위에서 배운 break를 사용하면 된다.
coffee = 10
while True:
coffee = coffee -1
print("커피를 팔고, {}잔 남았습니다.".format(coffee))
if coffee == 0:
print("매진되었습니다.")
break
코드를 보지 않고 한 줄 한 줄 생각하면서 직접 작성해보면 이해와 실력이 향상된다.
a = 0 부터 시작해서
1부터 10 사이의 홀수만 나오게 하려면 어떻게 하면 될까?
a = 0
while a < 10:
a = a + 1
if a % 2 == 0:
continue
print(a)
위 코드를 반복하면
짝수일 때는 while문으로 다시 올라가고
홀수일 때는 a값이 출력이 된다.
참고로
a = a + 1은
a += 1이라고 작성해도 된다.
여기까지 파이썬 while 반복문에 대한 설명이었습니다.
수정이 필요한 부분이나 이해가 안 가는 부분이 있다면 언제든 말씀해주세요!^0^
다음 글에서는 실습 문제를 풀어볼게요.
그럼 이만
총총