10-1. 들어가며


  • 학습 목표
  • while문 코드를 읽고 이해하기
  • 무한 루프를 빠져 나올 수 있다!
  • for문의 코드를 읽고 이해하기
  • break와 continue의 차이점을 설명할 수 있다!

10-2. while 반복문


  • while문 기본 구조

    • 유사한 명령을 계속 수행하는 제어문
    • if문처럼 작성하면 된다!
    while 조건:
        수행할 문장
  • 1~10까지 출력하는 코드

  • 알고리즘 살펴보기

num = 1           # num은 1
while num <= 10:  # num이 10보다 작거나 같을 '동안'
    print(num)    # num을 출력해라
    num += 1      # num에 num+1 을 할당 → 루프를 타고 올라가서 while 조건 충족 여부 재확인

  • while문 만들고 번역하기

    • 등차 수열의 합 구하기!

    • 번역하기!

      num = 1           # num에 1을 할당
      sum = 0           # sum에 0을 할당
      while num <= 10:  # num이 10보자 작을 동안
          sum += num    # sum은 기존 sum과 num을 더한 것이 되고,
          num += 1      # num은 기존 num에 1은 더한 것이 된다.
      print(sum)        # while문 끝나면 sum 값을 출력
  • while문 강제로 빠져나가기

    • break 사용!
    • ex) 꽈배기 10개를 준비한 상황에서 11번째 주문이 들어온다면 품절
      • 남아 있는 경우 -> 동작 실행 후 다시 조건문 맨 앞으로 돌아감!
      • 부족한 경우 -> 종료된다!
  • while문과 continue

    • break
      # break
      a = 0              # a는 0
      while a < 10:      # a가 10보다 작을 동안
          a += 1         # a에 a+1의 값을 할당하고
          if a % 2 ==0:  # 만약 a를 2로 나눈 나머지가 0과 동일하면
              break      # 루프를 깨버리고 나온다.
          print(a)       # (if문 블럭 밖이므로) a를 출력한다.
    • continue
      # continue
      a = 0              # a는 0
      while a < 10:      # a가 10보다 작을 동안
          a += 1         # a에 a+1의 값을 할당하고
          if a % 2 ==0:  # 만약 a를 2로 나눈 나머지가 0과 동일하면
              continue   # 넘어가고 루프 선두로 돌아가서 계속 루프를 탄다.
          print(a)       # (if문 블럭 밖이므로) a를 출력한다.
  • break와 continue의 차이는?
    • break : 루프를 탈출
    • continue : 이번 루프만 건너뛰고 나머지는 계속 수행
      ➡️ 즉, break는 루프를 빠져 나오는 것!
      ➡️ continue는 하나만 건너 뛰고 선두로 돌아 루프를 계속 실행하는 것!

  • 무한 루프
    • 반복 횟수를 정하지 않고 무한히 반복하는 루프

10-3. for문과 range함수


  • for문의 기본 구조
    • for문은 컬렉션의 요소를 순서대로 반복하며 수행할 문장을 실행하는 반복문
    • 컬렉션(collection) : 여러 개 값을 모아 놓은 집합
    • ex) 리스트, 튜플, 문자열
    • 변수는 i 자주 사용!
for 변수 in 컬렉션:
    수행할 문장
  • 예시

    • 리스트로 반복문 만들기

    • 문자열로 반복문 만들기

    • 다양한 for문 활용

  • for문과 continue

    • 문제로 이해하기 : 5명 학생들의 점수 데이터를 보고 60점 이상을 받아서 합격한 학생들에게만 축하 메세지를 출력해보자.
    # for문과 continue 예시
    a = [('은정', 98), ('경애', 59), ('초희',  72), ('선영', 80), ('영미', 50)]
    for (name, score) in a:
        if score < 60:                  # score가 60미만이면
            continue                    # 이번 루프는 넘기고 루프의 선두로 돌아간다.
        print(name,'님 합격을 축하합니다.')  # 아니면 해당 내용을 출력해라.

  • for문 + range 함수

    • range 함수를 이용하면 -> 간단하게 숫자들의 컬렉션을 만들 수 있음!

    • range(시작 값, 끝 값+1, 증가 값) 형태

    • 시작 값 생략 시 : 0으로 초기화

    • 증가값 생략 시 : 1로 초기화

    • 증가값이 음수면 -> 역순!

    • 0까지 출력하고 싶다면?

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글