1부터 1000까지의 수 중에
2의 배수와 3의 배수를 모두 작성하세요
이런 문제가 나왔을 때 계산기를 두드리면서 일일히 다 작성하실건가요?
오늘 배우는 반복문은 바로 이런 부분에서 컴퓨터를 개발하게 만들어주고, 개발언어를 더욱 견고히 발전하게 해준 원동력이 되었습니다. 즉, 인간이 하기 귀찮은 일 들을 컴퓨터가 대신 해주었고 거기서 가장 발전하게 된 것이 인간의 귀찮음을 대신해주던 '반복문'입니다.
파이썬 반복문 중 조건 부분을 그나마 간단하게 정할 수 있는 반복문을 꼽으라면
당연히 while 문을 꼽을겁니다. 다른 조건문(for문 등)의 경우 조건 부분에서 변수나 이후의 단계(step)를 지정해주어야하는데, while 문은 멈추는 부분! stop point를 지정해주면 반복문이 돌아가면서 그 stop point를 지나가는게 되면 반복이 멈추게 되는 구조입니다.
대신 세세한 부분을 조건문 안에서 변수로 지정해주어야 하거나, 변수의 step을 지정해주어야한다는 불편함이 있을수도 있습니다. 그래도 제 생각엔 반복문을 가장 이해할 수 있는 좋은 방법이고 예시이지 않을까 싶습니다!!
특히나 프로그래밍 언어를 처음하신다면 while 반복문을 처음으로 익숙하게 하고 난 뒤 for 반복문 등을 배우시는 것이 한 방법이겠습니다 !! 그나마 더 간단하기 때문이죠.
거두절미하고, 예시를 통해 확인해보도록 하겠습니다.
Q. 100 이하의 짝수를 구하세요 ( while 문을 이용한 )
만약 100 이하의 홀수를 while 문을 이용해서 출력한다면 어떻게 출력할 수 있을까요?
위의 그림처럼 조건 부분과 실행 부분을 잘 지정해서 해보면 됩니다.
방법 1. 각 수의 2배 곱을 해주어 50까지 출력하기
i = 1
while i <= 50 :
print(i * 2)
i += 1
이렇게 하면 숫자 50일 때 2배인 100이 되니깐, 이렇게 지정해주면 각 수의 짝수를 출력해줄 수 있습니다.
이 방법은 장단점이 있습니다. 지금처럼 100이라는 수가 정해져있을 시 나누기 2를 하여 50이라는 수를 직접 대입하여 풀 수 있긴 하죠! 하지만, 숫자가 무작위일 땐 저렇게 50을 직접적으로 못 넣고 변수를 / 2 ( 나누기 2를) 한 수로 직접 지정해주어 확실히 하는 방법이 필요하겠네요 !
그래도 이 방법도 있고 다른 방법도 있지 않을까요?
(위 방법보다 ) 조금 복잡하긴 하지만 다른 방법도 있습니다.
방법 2. 조건문 그대로 숫자 '100'의 제한 사항을 우선적으로 두고, 출력하기
i = 2
while (i <= 100) and (i % 2 == 0):
print(i)
i += 2
이 방법을 사용한다면 'and'의 힘을 알아야합니다. and는 두 조건을 모두 만족시켯을 때 결과값을 충족시키는 것이기에 , '100 이하( 101보다 작으) 면서 2로 나누엇을 때 나머지가 없는 수' 로 한글로 푼다면 이해할 수 있습니다.
조건식에 and 의 힘을 이용해야해서 다소 귀찮거나 번거로울 수 있으나, 확실하게 조건문에 지정하여 반복문을 실행하는 것이 조금 더 정확하다고 판단하는 경우 이렇게 식을 쓰는 것도 나쁘지 않다고 보여집니다.(나중에 메모리 양까지 고려한다면 얘기가 달라질 수 있습니다.)
이렇게 while 문을 이용하면 여러가지 다양한 조건을 걸고 이것을 확인할 수 있습니다.
예를 들면,
예시 ) 900 이상 37의 배수 중 최소 값을 구하는 식을 구한다면,
# 900 이상 가장 작은 37의 배수
i = 900
while (i % 37 != 0) & (i >= 900): # !는 not의 의미
i += 1
print(i)
이렇게 간단하게 while 문을 활용해서 구할 수 있을 것입니다.
아마 처음 배우신다면 너무 힘들고 무슨 말인지 모르겠지만, 반복해서 반복문을 사용해본다면 분명 손에 익고 유용하게 사용하는 그 날이 오실 겁니다 !!
저의 티끌 코딩 글이 블로그 방문자 님의 코딩에 조금이라도 도움이 됐으면 좋겠습니다 !
글 하단 '좋아요(♡)' 마우스 클릭 한번과 댓글은 글 작성자에게 너무 큰 힘이 됩니다. 감사합니다.
'Programming Language > Python( 파이썬 )' 카테고리의 다른 글
파이썬 기본 연산 [ 버림, 몫 구하기, 나머지, 제곱 , 파이썬 %, 파이썬 //] (0) | 2021.06.10 |
---|---|
파이썬 if문/ elif/ def(함수)/ 조건문 예시 : 간단한 학점 분류 프로그램 만들기 (2) | 2021.06.08 |
[파이썬 기초] a의 배수 이지만, b의 배수가 아닌 것 구하기 (파이썬 배수 문제, 파이썬 %, 파이썬 !=) (0) | 2021.02.04 |
파이썬 단어 짝수 홀수 반복 출력 (Python repeat) (0) | 2021.01.21 |
파이썬 거꾸로 뒤집기 , list 순서 뒤집기 4가지 방법( Python reversed/ reverse) (0) | 2021.01.19 |