파이썬에서의 제어 흐름
이 기사는 파이썬에서의 제어 흐름에 대해 설명합니다.
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
문을 사용할 때는 다음 사항들을 유의해야 합니다.
-
무한 루프에 주의하세요
while
문의 조건이 항상True
라면, 무한 루프가 발생합니다. 조건을 변경하기 위한 적절한 작업이 수행되어야 하며, 그렇지 않으면 프로그램이 멈추지 않습니다.
-
break
와continue
사용: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
- 이 경우,
1
과2
가 출력된 후,i
가3
이 되면 루프가 종료됩니다.
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를 사용해 우리 유튜브 채널에서 함께 따라할 수 있습니다. 유튜브 채널도 확인해 주세요.