본문 바로가기

Programming Language/Python( 파이썬 )

Q. 100 이하의 짝수를 모두 출력하시오 ( 파이썬 while 반복문 / while 파이썬 )

반응형

 

 

 

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 문을 활용해서 구할 수 있을 것입니다.

아마 처음 배우신다면 너무 힘들고 무슨 말인지 모르겠지만, 반복해서 반복문을 사용해본다면 분명 손에 익고 유용하게 사용하는 그 날이 오실 겁니다 !!

 

 

 

 

저의 티끌 코딩 글이 블로그 방문자 님의 코딩에 조금이라도 도움이 됐으면 좋겠습니다 !

글 하단 '좋아요(♡)' 마우스 클릭 한번과 댓글은 글 작성자에게 너무 큰 힘이 됩니다. 감사합니다.

 

 

 

 

반응형