프로그래머스 파이썬 입문_11차시 while문과 반복 제어

리냥·2022년 5월 24일
0

프로그래머스 파이썬 입문_11차시 while문과 반복 제어


1-1. while문 쓰기

  • while문
  • 조건이 참인 경우 계속 실행하는 반복문
while selected not in ['가위', '바위', '보']:
    selected = input('가위, 바위, 보 중에 선택하세요>')
  • for 반복문으로 작성한 코드는 while 반복문으로 작성 할 수 있다.

1-2. while문 쓰기 실습 하기

  • 문제
코드 5번째 줄의 빈칸을 채워넣어 while문이 numbers의 값을 한 줄씩 출력하도록 만들어 보세요.

※ 빈칸은 length 변수를 이용해 채워주세요.
  • 코드
 numbers = [1,2,3]
 length = len(numbers)
 i = 0
while i < 3:
	print(numbers[i])
	i = i + 1 
 }

print(days_in_month)
  • tip
    while문은 조건이 참인 경우 실행문을 반복하는 반복문입니다. 예제를 살펴보고 조건식의 빈칸을 올바르게 채워 보세요.
while 3<5:         # 3<5가 참이므로
    print("true")  # 이 코드가 반복적으로 실행됩니다.

2-1. break, continue

  • break
    반복문을 종료시키는 기능

  • continue
    반복문의 나머지 부분을 보지 않고, 반복문의 처음으로 돌아가는 기능

2-2. break, continue 실습 하기

예제1

  • 문제
sizes에는 진열된 바지 사이즈의 목록이 들어 있습니다. 다음 코드는 사이즈가 32인 바지의 위치를 모두 출력하고 있는데요. 5번째줄을 수정해서 사이즈가 32인 바지의 위치를 한 번만 출력하고 프로그램이 종료되도록 만들어 보세요.

32인 바지의 위치를 한번만 출력하고 반복문을 빠져나와야 합니다. break는 반복문을 종료시키는 기능을 갖고 있으므로 break를 이용하면 되겠지요.

아래의 예제는 list에서 3의 배수를 하나만 찾고 반복문을 종료하는 코드입니다. 이 예제를 참고하여 문제를 해결해 보세요.
  • 코드
sizes = [33,35,34,37,32,35,39,32,35,29]
for i,size in enumerate(sizes):
    if size == 32:
        print("사이즈 32인 바지는 {}번째에 있다.".format(i+1))
        break
  • tip
list = [1, 2, 3, 5, 7, 2, 5, 237, 55]
for val in list:
    if val % 3 == 0:
        print(val)
        break

예제2

  • 문제
다음 코드는 numbers에 있는 튜플을 받아들여서 튜플의 첫번째 숫자를 두번째 숫자로 나누는 일을 합니다. 이 때, b가 0이면 "0으로 나눌 수는 없습니다."라고 출력하는데요. 이 if else문에서 continue문을 이용하여 else를 사용하지 않도록 변경해 보세요.
1. 주어진 if-else문에서 else문을 제거하고 if문과 continue를 사용하기
2. 실행 시 다음 문장이 출력되도록 만들기
  • 코드
numbers = [(1, 2), (10, 0)]

for a, b in numbers:
    if b == 0:
        print("0으로 나눌 수는 없습니다.")
    continue
        print("{}을(를) {}로 나누면 {}".format(a, b, a/b))
  • tip
    continue는 반복문의 나머지 부분을 보지 않고, 반복문의 처음으로 돌아가는 기능입니다. continue는 핵심이 되는 블럭이 너무 들여쓰기 되지 않게 합니다.

아래의 예제는 10 이하의 홀수만 출력하는 코드입니다. 아래의 예를 참고하여 문제를 해결해 보세요.

for i in range(10):
    if i % 2 ==0:
        continue
    print(i)

3-1. 딕셔너리와 반복문

  • 경우에 따라 가져올 값을 정할 수있다.
for key in ages.keys(): # keys() 생략 가능
    print(key)
for value in ages.values():
    print(value)
  • key와 value 둘다 가져올 수 있다.
for key, value in ages.items():
    print('{}의 나이는 {} 입니다'.format(key, value))
  • 딕셔너리는 값의 순서를 지키지 않는다.

3-2. 딕셔너리 수정하기 실습 하기

예제1

  • 문제
for in문을 이용해서 days_in_month의 이름표(key)를 한줄씩 출력해 보세요.

딕셔너리를 반복문에서 활용하는 방법을 알아봅시다. 딕셔너리의 반복문에서는 경우에 따라 key를 가져올 수도 있고 값을 가져올 수도 있습니다. 아래의 예를 참고하여 문제를 해결해 보세요.
  • 코드
days_in_month = {"1월":31, "2월":28, "3월":31, "4월":30, "5월":31}

for key in days_in_month.keys():
    print(key)
  • tip
ages = {'Tod' : 35, 'Jane' = 23, 'Paul' : 62}

for key in ages.keys():      # keys() 생략 가능
    print(key)               # Tod, Jame, Paul이 출력됩니다.

for value in ages.values():
    print(value)             # 62, 23, 35가 출력됩니다.

예제2

  • 문제
days_in_month의 각 이름표와 값을 다음과 같은 형식으로 출력해 보세요.

1월은 31일이 있습니다.
2월은 28일이 있습니다.
...
정확한 출력 형식은 작성되어 있는 print함수를 참고하세요.

  • 코드
days_in_month = {"1월":31, "2월":28, "3월":31, "4월":30, "5월":31}

for key, value in days_in_month.items():
    print("{}은 {}일이 있습니다.".format(key, value) )
  • tip
    딕셔너리의 반복문에서는 key와 value를 선택해서 가져올 수 있었지요. 이번 문제처럼 key와 value를 둘 다 가져와야 할 때에는 items()를 사용하면 됩니다. 아래의 예를 참고하여 문제를 해결해 보세요.
dages = {'Tod' : 35, 'Jane' : 23, 'Paul' : 62}

for key, value in ages.items():
    print('{}의 나이는 {} 입니다'.format(key, value))

profile
안녕하세요. 일로 인해 잠시 쉽니다 :)

0개의 댓글