Loop구문은 for구문 말고도 While구문이 있다.
for구문은 list나, set, dictionary등의 data structure(자료 구조) 등을 기반으로 코드블록을 반복 실행한다.
반면 while구문은 list같은 data structure 기반이 아닌 변수등이 코드블록을 반복해야 할때 사용한다
While구문의 문법은 다음과 같다
## While Syntax
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>
## While Example
number = 0
while number <= 10:
print(number)
number += 1
> 0
1
2
3
4
5
6
7
8
9
10
for구문과 마찬가지로 while구문에서도 break와 continue가 있다.
반복문을 빠져나가고자 한다면 break,
계속 이어가고자 한다면 continue를 사용한다
## while break & continue example
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문이 추가 될 수 있다. if구문의 else문과 유사하며, while문의 조건문이 False일 경우 else의 statement가 실행된다
즉, while구문이 종료되면 else문이 실행이 된다
## While else Syntax
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>
else:
<while문이 종료된 후 수행할 문장1>
<while문이 종료된 후 수행할 문장2>
<while문이 종료된 후 수행할 문장3>
...
<while문이 종료된 후 수행할 문장N>
## While else Example
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
find_smallest_integer_divisor 라는 이름의 함수를 구현해 주세요.
find_smallest_integer_divisor 함수는 하나의 parameter를 받습니다.
Parameter 값은 integer만 주어집니다.
find_smallest_integer_divisor 주어진 parameter 값을 정수로 나눌 수 있는 최소한의 수를 리턴하여야 합니다.
예제:
find_smallest_integer_divisor(15) == 3
## My Solution
def find_smallest_integer_divisor(numb):
start_numb = 1
if numb ==0:
return 0
while start_numb <= numb :
start_numb += 1
if numb % start_numb == 0:
return(start_numb)
break
## Model Solution
def find_smallest_integer_divisor(number):
i = 2
while number % i != 0:
i += 1
return i