2 minute read

Python 조건문/반복문

제어문

  • 파이썬은 위에서 이래로 순차적으로 명령 수행
  • 특정 상황에 따라 선택적으로 분기, 반복하는 제어가 필요
  • 제어문은 순서도로 표현이 가능

조건문

조건문 기본

  • 조건문은 참/거짓을 판단할 수 있는 조건식과 함께 사용

  • 기본 형식

    if <expression>:
        # Run this Code Block
    else:
        # Run this Code Block     -> else는 생략 가능
    
  • 예제

    # 조건문을 통해 변수 num의 홀수/짝수 여부를 출력하시오.
    num = int(input())
    if num % 2 == 1:
        print('홀')
    else:
        print('짝')
    

복수 조건문

  • 복수의 조건식을 활용할 경우 elif를 활용하여 표현

    if <expression>:
        # Code Block
    elif <expression>:
        # Code Block
    else :
        # Code Block
    
  • 예제

    # dust 값에 따라 미세먼지 등급을 출력하는 조건식을 작성하시오.
    dust = 80
      
    if dust > 150 :
        print('매우 나쁨')
    elif dust > 80 :
        print('나쁨')
    elif dust > 30 :
        print('보통')
    else:
        print('좋음')
    print('미세먼지 확인 완료')
    

###

중첩 조건문

  • 조건문은 다른 조건문에 중첩되어 사용될 수 있음

    들여쓰기 주의!!! 파이썬에서는 들여쓰기로 구문 범위 인식하므로 중요!!

    if <expression>:
        # Code Block
        if <expression>:
            # Code Block
    else:
        # Code Block
    

조건 표현식

  • 조건 표현식을 일반적으로 조건에 따라 값을 할당 할 때 활용

    <true인 경우 > if <expression> else <false인 경우 >
    

반복문

  • 특정 조건을 도달할 때까지, 계속 반복되는 일련의 문장

반복문의 종류

  • while문

    • 종료 조건에 해당하는 코드를 통해 반복문을 종료시켜야함
  • for문

    • 반복 가능한 객체를 모두 순회하면 종료 (별도의 종료 조건이 필요 없음)
  • 반복 제어

    • break, continue, for-else

While 문

  • while문은 조건식이 참인 경우 반복적으로 코드를 실행. 거짓이 되면 탈출

    • 조건이 참인 경우 들여쓰기 코드 블록 실행

    • 코드 블록 실행 후 다시 조건 비교후 재실행

    • 무한 루프 돌지 않게 종료 조건 필요

      while <expression>:
          # Code Block
      
    • 예제

      # 1부터 사용자가 입력한 양의 정수까지의 총합을 구하는 코드를 작성하시오.
          
      # 값 초기화
      n = 0
      total = 0
      user_input = int(input())
          
      while n <= user_input:
          total += n
          n += 1
      print(total)
      

For 문

  • for문은 시퀀스(string, tuple, list, range)를 포함한 순회가능한 객체 요소를 모두 순회함

    for <변수명> in <iterable> :
        # Code Block
    
  • For문의 일반 형식

    • Iterable

      • 순회할 수 있는 자료형

        str, list, dict 등

      • 순회형 함수

        range, enumerate

  • 예제

    # 문자열 순회
    chars = input()  # hi 입력
    for i in range(len(chars)):
        print(chars[i])
    # h
    # i
      
      
    # enumerate 순회
    인덱스와 객체를 쌍으로 담은 열거형 객체 반환
      
    members = ['민수', '영희', '철수']
      
    for i in range(len(members)):
        print(f'{i} {members[i]}')
          
    for i, member in enumerate(members):
        print(i, member)
          
          
    # dictionary 순회
    딕셔너리는 기본적으로 key를 순회하며, key를 통해 값을 활용
    grades = {'john' : 80, 'eric' : 90}
    for name in grades:
        print(name)
    # john
    # eric
      
    grades = {'john' : 80, 'eric' : 90}
    for name in grades:
        print(name, grades[name])
    # john 80
    # eric 90
    

반복문 제어

  • break

    • 반복문을 종료
  • continue

    • continue 이후의 코드 블록은 수행하지 않고, 다음 반복을 수행
  • for-else

    • 끝까지 반복문을 실행한 이후에 else문 실행
      • break를 통해 중간에 종료되는 경우 else 문은 실행되지 않음

break

  • break문을 만나면 반복문은 종료됨

    n = 0
    while True:
        if n == 3:
            break
        print(n)
        n += 1
    # 0 1 2
      
    for i in range(10):
        if i > 1:
            print('0과 1만 필요해!')
            break
        print(i)
    # 0 1 0과 1만 필요해!
    

continue

  • continue 이후의 코드 블록은 수행하지 않고, 다음 반복을 수행

    for i in range(6):
        if i % 2 == 0:
            continue
        print(i)
    # 1 3 5
    

for-else

  • else문은 break로 중단되었는지 여부에 따라 실행

    for char in 'apple':
        if char == 'b':
            print('b!')
            break
    else:
        print('b가 없습니다.')
    # b가 없습니다.
      
      
    for char in 'banana':
        if char == 'b':
            print('b!')
            break
    else:
        print('b가 없습니다.')
    # b!
    

Updated: