[TIL.24]Python - While, Dictionary Loop

신지원·2021년 3월 22일
0

Python

목록 보기
10/14
post-thumbnail

While Loop

반복문

  • for은 list, set, dictionary등 데이터 구조등을 기반으로 코드블록을 반복실행한다.
  • while
    data structure기반이 아닐때 코드블록을 반복할때 사용한다.
  • 특정 조건문이 True 일때 코드블록을 반복 실행한다.
while <조건문>:     
    <수행할 문장1>     
    <수행할 문장2>     
    <수행할 문장3>     
    ...
    <수행할 문장N>     
number = 0

while number <= 10: #조건을 주고, 이 조건에 맞으면 조건문이 돈다.
    print(number)
    number += 1
> 0
1
2
3
4
5
6
7
8
9
10

Break & Continue

break는 while문을 강제 종료하고 continue는 다음 반복문으로 넘어간다.

number = 0

while number <= 10:
    if number == 9:
        break
    elif number <= 5:
        number += 1
        continue      # 다시 while number <= 10: 로 돌아간다.  
    else:
        print(number)
        number += 1
> 6
7
8

if 처럼 while에 else문을 추가할 수 있다.
위에 보이는 continue는 while number <= 10: 로 돌아간다.


Q.

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

find_smallest_integer_divisor 함수는 하나의 parameter를 받습니다.

Parameter 값은 integer만 주어집니다.

find_smallest_integer_divisor 주어진 parameter 값을 나눌 수 있는 1을 제외한 최소의 양의 정수를 return하여야 합니다.

def find_smallest_integer_divisor(num): 
    ## 아래 코드를 입력해주세요.
  i = 2
  while num >= i:
    if num % i == 0:
      return i
    i += 1
  else:
    return 2

짝수는 언제나 정답이 2이니깐 홀수만 생각해주면 됐다.
홀수의 경우만 생각해주면 되는데, num을 i=2 로 나누어서 나머지값이 없을 경우에는 i가 정답이 되고, 안될경우에는 계속 해서 i씩 더해주면서 num과 나누어서 나머지값이 0일 경우에 return을 해서 정답처리를 해준다.
이를 더 간단하게 바꿀 수가 있다.
사실 위에서 while에 걸려있는 조건은 의미 없는 조건이다. 이를 삭제 하고

check_num = 2
while num % check_num != 0:
  check_num += 1
return check_num

이런식으로 바꾸어 주면 코드를 더 짧게 바꿀 수 있다.

loop dictionary

딕셔너리를 사용한 for 반복문에서는 각 요소의 key 값만 return하고, 그 key 값을 가지고 값을 읽어들이는 구조이다.

- key 값을 loop

Value 값으로 loop

values()함수는 딕셔너리의 value들을 list의 형태로 return 해준다.

Key, value 둘다 loop

items() 을 통해 key,value를 tuple로 return 해준다.

0개의 댓글