Python - While Loops

GyungHo Go·2020년 4월 24일
0
post-thumbnail
post-custom-banner

while문은 파이썬에서 가장 간단하게 쓰일수 있는 반복문 이다.
while 문은 조건식이 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행한다.

for 구문은 list나 set, dictionary 등의 data structure 등을 기반으로 코드블록을 반복 실행한다.
하지만 가끔은 list같은 data structure 기반이 아니더라도 코드블록을 반복해야 할 때가 있다. 이럴때에 while 구문이 사용된다.

whlie문 구조

while <조건문>:     
    <수행할 문장1>     
    <수행할 문장2>     
    <수행할 문장3>     
    ...
    <수행할 문장N>  

예를 들어, 어떠한 특정 변수의 값의 초기 값이 0인데, 1씩 증가하여 10이 되기전까지 값의 변화를 출력하는 코드는 다음처럼 구현할 수 있다.

number = 0

while number <= 10:
    print(number)
    number += 1

결과값
0
1
2
3
4
5
6
7
8
9
10
이렇게 list같은 자료구조 없이도 반복문을 실행할수 있다.

Break & Continue

For문과 마찬가지로 while문도 break과 continue가 있다.
For문과 동일하게 break는 while문을 강제종료 하고 continue는 다음 iteration으로 넘어간다.

number = 0
while number <=10;
    if number <9:
    	break
    elif number <= 5:
    	number +=1
        continue
    else:
    print(number)
    number += 1

결과값
6
7
8

While Else

파이썬의 while문은 else 문이 추가 될 수 있다.
if 문의 else 문과 유사하다. If 문의 else 문은 if 문의 조건문이 False이면 실행된다. While문의 else 문도 while의 조건문이 False 이면 실행된다. 즉 while문이 종료되면 else 문이 실행된다는 뜻이다.

while <조건문>:
    <수행할 문장1>     
    <수행할 문장2>     
    <수행할 문장3>     
    ...
    <수행할 문장N> 
else:
    <while문이 종료된 후 수행할 문장1>     
    <while문이 종료된 후 수행할 문장2>     
    <while문이 종료된 후 수행할 문장3>     
    ...
    <while문이 종료된 후 수행할 문장N>     

예를 들어, 앞서 본 while 문에 else 문을 추가하여 while 문이 종료되고 난 후의 number 변수의 값을 출력할 수 있다.

number = 0

while number <= 10:
    print(number)
    number += 1
else:
    print(f"while 문이 끝나고 난 후 의 number : {number}")

결과값
0
1
2
3
4
5
6
7
8
9
10
while 문이 끝나고 난 후 의 number : 11

Assignment

find_smallest_integer_divisor 라는 이름의 함수를 구현해 주세요.

find_smallest_integer_divisor 함수는 하나의 parameter를 받습니다.
Parameter 값은 integer만 주어집니다.
find_smallest_integer_divisor 주어진 parameter 값을 나눌 수 있는 1을 제외한 최소의 양의 정수를 리턴하여야 합니다.

예제:
find_smallest_integer_divisor(15) == 3

my solution

def find_smallest_integer_divisor(numb): 
 
  i = 2
  while numb % i != 0:
    i += 1
  return i
profile
기록하는 습관
post-custom-banner

0개의 댓글