• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • [BW 9] for나 while 루프 뒤에 else 블록을 사용하지 말라
      2024년 10월 22일
      • 31514
      • 작성자
      • 2024.10.22.:07

      💡 파이썬에서는 루프가 반복 수행하는 내부 블록 바로 다음에 else 블록을 추가할 수 있다.

       

      루프가 모두 실행되어도 else 블록은 실행된다.

      for i in range(3):
          print('Loop', i)
      else:
          print('Else Block!')
        
      >>>
      Loop 0
      Loop 1
      Loop 2
      Else Block!
      

      루프가 한 번도 실행되지 않아도 else 블록은 실행된다.

      while False:
          print('No')
      else:
      	print('While Else block!')
      
      >>>
      While Else block!

      루프 중 break문을 만나서 빠져나오면 else 블록은 실행되지 않는다.

      for i in range(3):
          print('Loop', i)
          if i == 1:
              break
      else:
          print('Else Block!')
          
      >>>
      Loop 0
      Loop 1
      

      이런 식으로 동작하는 이유는 루프를 사용해 검색을 수행할 경우, 루프 바로 뒤에 있는 else 블록이 그와 같이 동작해야 유용하기 때문이다.

      하지만 for/else나 while/else는 if/else, try/except와 결이 달라서 헷갈리기 쉽다.

      도우미 함수를 사용해 개선해보자

      원하는 조건을 찾자마자 함수를 반환

      def coprime(a, b):
          for i in range(2, min(a, b) + 1):
              if a % i == 0 and b % i == 0:
                  return False
          return True
      

      루프 안에서 원하는 대상을 찾았는지 나타내는 결과 변수 도입

      def coprime(a, b):
          is_coprime = True
          for i in range(2, min(a, b) + 1):
              if a % i == 0 and b % i == 0:
                  is_coprime = False
                  break
          return is_coprime
      

      'Book > 파이썬 코딩의 기술' 카테고리의 다른 글

      [BW 11] 시퀀스를 슬라이싱하는 방법을 익혀라  (0) 2024.10.22
      [BW 10] 대입식을 사용해 반복을 피하라  (0) 2024.10.22
      [BW 8] 여러 이터레이터에 대해 나란히 루프를 수행하려면 zip을 사용하라  (0) 2024.10.22
      [BW 7] range보다는 enumerate를 사용하라  (3) 2024.10.22
      [BW 6] 인덱스를 사용하는 대신 대입을 사용해 데이터를 언패킹하라  (0) 2024.10.22
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바