파이썬에서의 제어 흐름

파이썬에서의 제어 흐름

이 기사는 파이썬에서의 제어 흐름에 대해 설명합니다.

YouTube Video

파이썬의 If 문

파이썬의 if 문은 조건 분기를 위한 구문입니다. 특정 조건이 True(참)로 평가되면 코드를 실행하는 데 사용됩니다.

기본 구문

파이썬의 if 문은 기본적으로 아래 구조를 따릅니다.

1x = 10
2
3if x > 5: # Check if the condition(x > 5) is True
4    # If the condition is True, execute this code block
5    print("x is greater than 5")

이 예제에서는 변수 x가 5보다 클 경우 "x is greater than 5"이 출력됩니다.

else

if 문 뒤에 else를 사용하여 조건이 거짓일 때 실행할 코드를 지정할 수 있습니다.

1x = 3
2
3if x > 5:
4    print("x is greater than 5")
5else:
6    print("x is less than or equal to 5")

이 예제에서는 결과가 "x is less than or equal to 5"로 출력됩니다.

elif

여러 조건을 확인해야 할 경우 "else if"를 의미하는 elif를 사용할 수 있습니다.

1x = 5
2
3if x > 5:
4    print("x is greater than 5")
5elif x == 5:
6    print("x is equal to 5")
7else:
8    print("x is less than 5")

이 예제에서는 "x is equal to 5"이 출력됩니다.

노트

  • if, elif, 또는 else 뒤에는 반드시 콜론(:)이 필요합니다.
  • 조건이 참일 때 실행되는 코드 블록은 들여쓰기가 필요합니다. 파이썬에서 표준 들여쓰기는 보통 4칸이지만, 일관성을 유지한다면 다른 칸 수도 사용할 수 있습니다.
  • 불리언 값으로 평가되는 표현식은 조건으로 사용할 수 있습니다. 비교 연산자나 논리 연산자와 결합된 조건식을 사용할 수 있다는 뜻입니다.

파이썬의 if 문을 숙달하면 프로그램 실행 흐름을 유연하게 제어할 수 있습니다.

파이썬에서의 다중 조건 분기

Python에서 다른 언어와 유사하게 switch와 같은 기능을 구현하는 방법에는 여러 가지가 있습니다. 파이썬에서는 if-elif-else 문이나 딕셔너리를 사용하여 switch 문과 유사한 구조를 만드는 것이 일반적입니다.

방법 1: if-elif-else

가장 간단한 방법은 조건 분기를 위해 if-elif-else 문을 사용하는 것입니다.

 1def switch_example(value):
 2    if value == 1:
 3        return "Value is one"
 4    elif value == 2:
 5        return "Value is two"
 6    elif value == 3:
 7        return "Value is three"
 8    else:
 9        return "Unknown value"
10
11print(switch_example(1))  # Output: Value is one
12print(switch_example(4))  # Output: Unknown value

방법 2: 딕셔너리 사용

함수나 값을 딕셔너리에 매핑하여 switch 문과 유사한 구조를 생성할 수 있습니다. 특정 값에 대해 다양한 작업을 수행하려는 경우에 편리합니다.

 1def case_one():
 2    return "Value is one"
 3
 4def case_two():
 5    return "Value is two"
 6
 7def case_default():
 8    return "Unknown value"
 9
10def switch_example(value):
11    switch_dict = {
12        1: case_one,
13        2: case_two
14    }
15
16    # Use get() method to retrieve the corresponding function from the dictionary
17    # If the value is not found in the dictionary, use case_default as a fallback
18    return switch_dict.get(value, case_default)()
19
20print(switch_example(1))  # Output: Value is one
21print(switch_example(3))  # Output: Unknown value

방법 3: match 문 (Python 3.10 이상)

match 문은 Python 3.10에서 도입되었습니다. 이는 switch 문과 유사한 기능을 제공하는 패턴 매칭 구문입니다.

 1def switch_example(value):
 2    match value:
 3        case 1:
 4            return "Value is one"
 5        case 2:
 6            return "Value is two"
 7        case 3:
 8            return "Value is three"
 9        case _:
10            return "Unknown value"
11
12print(switch_example(1))  # Output: Value is one
13print(switch_example(4))  # Output: Unknown value

요약

  • if-elif-else: 간단하며 다양한 경우에 적응 가능.
  • 딕셔너리: 함수나 값을 매핑하여 효율적인 분기를 가능하게 함.
  • match: Python 3.10 이상에서 좀 더 직관적인 분기를 가능하게 함. switch 문에 가장 가까움.

Python의 For 루프

Python의 for 문은 리스트, 문자열, 딕셔너리와 같은 반복 가능한 객체의 각 요소를 순회(iterate)하는 데 사용됩니다. for 문의 기본 구문은 다음과 같습니다:.

1# Loop through each item in the iterable
2for variable in iterable:
3    # Execute this block of code for each item in the iterable
4    code_to_execute

다음은 몇 가지 구체적인 예시입니다:.

리스트를 사용한 예시

1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3    print(fruit)

이 코드는 리스트 fruits의 각 요소에 대해 print 함수를 호출하며, 각 과일의 이름을 출력합니다.

range()를 사용한 예시

range() 함수는 지정된 범위 내의 정수를 생성하여 숫자 반복에 유용합니다.

1for i in range(5):
2    print(i)

range(5)는 0부터 4까지의 정수를 생성합니다. 이 경우 0, 1, 2, 3, 4가 순서대로 출력됩니다.

딕셔너리를 사용한 예시

딕셔너리의 경우 기본적으로 키가 순회되지만, 키-값 쌍도 가져올 수 있습니다.

1person = {"name": "Alice", "age": 25}
2for key in person:
3    print(key, person[key])

또는 items() 메소드를 사용하여 키와 값을 동시에 가져올 수 있습니다.

1person = {"name": "Alice", "age": 25}
2for key, value in person.items():
3    print(key, value)

중첩된 for 루프

for 루프를 중첩하여 복잡한 반복 작업을 수행하는 것도 가능합니다.

1matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2for row in matrix:
3    for num in row:
4        print(num)

이 코드는 리스트 matrix의 각 행을 반복하며 각 행의 숫자를 순차적으로 출력합니다.

continue는 현재 반복을 건너뛰고, break는 루프를 종료합니다

for 루프 안에서 continue를 사용하면 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다. 또한, break를 사용하면 루프를 완전히 종료합니다.

1for i in range(10):
2    if i == 5:
3        continue
4    if i == 8:
5        break
6    print(i)

이 예제에서 루프는 i가 5일 때 건너뛰고, i가 8일 때 종료됩니다. 따라서 출력 결과는 0, 1, 2, 3, 4, 6, 7이 됩니다.

파이썬의 for 루프는 매우 유연하며 다양한 상황에서 사용할 수 있습니다. 수행하려는 반복 처리의 종류에 따라 리스트, 딕셔너리, 문자열, range()와 결합하여 사용할 수 있습니다.

Python의 while 루프

Python에서 while 루프는 조건이 True인 동안 블록 내의 코드를 반복 실행하는 제어 구조입니다. while 루프의 기본 문법은 다음과 같습니다:.

1while condition:
2    # This block of code will be executed repeatedly as long as the condition is true
3    statement1
4    statement2
5    ...

예제:

다음 예제에서는 while 루프를 사용하여 1에서 5까지의 숫자를 출력합니다.

1i = 1
2while i <= 5:
3    print(i)
4    i += 1

이 코드는 다음과 같이 작동합니다.

  • i를 1로 시작하고, i가 5 이하일 때까지 i를 출력하며, 매번 i를 1씩 증가시키세요.

주의:

while 문을 사용할 때는 다음 사항들을 유의해야 합니다.

  1. 무한 루프에 주의하세요

    • while 문의 조건이 항상 True라면, 무한 루프가 발생합니다. 조건을 변경하기 위한 적절한 작업이 수행되어야 하며, 그렇지 않으면 프로그램이 멈추지 않습니다.
  2. breakcontinue 사용:

    • break는 반복문을 조기에 종료하고 싶을 때 사용합니다.
    • continue는 현재 반복을 건너뛰고 다음 반복을 시작합니다. 잘못된 반복 조건은 무한 루프를 일으킬 수 있으니 주의하세요.

break 예제:

1i = 1
2while i <= 5:
3    if i == 3:
4        break  # Exit the loop when i becomes 3
5    print(i)
6    i += 1
  • 이 경우, 12가 출력된 후, i3이 되면 루프가 종료됩니다.

continue 예제:

1i = 0
2while i < 5:
3    i += 1
4    if i == 3:
5        # Skip the print statement and move to the next loop iteration when i is 3
6        continue
7    print(i)
  • 이 경우, 3만 출력이 건너뛰어지고 결과는 1, 2, 4, 5입니다.
  • 루프 시작 시 i의 값을 증가시키면 continue가 실행되어도 카운터가 진행되어 무한 루프를 방지할 수 있습니다.

위의 기사를 보면서 Visual Studio Code를 사용해 우리 유튜브 채널에서 함께 따라할 수 있습니다. 유튜브 채널도 확인해 주세요.

YouTube Video