8. if문으로 의사결정하기
지금까지 우리가 작성한 프로그램에서는 Python이 모든 코드 줄을 위에서 아래로, 한 문장씩 순서대로 실행합니다. 하지만 현실 세계의 프로그램은 결정을 내려야 합니다—서로 다른 조건에 따라 서로 다른 코드를 실행해야 합니다. 오류 메시지를 표시해야 할까요? 할인을 계산해야 할까요? 입력을 다시 요청해야 할까요? 답은 상황에 따라 달라집니다.
조건문 (conditional statements)은 프로그램이 이런 결정을 내릴 수 있게 해줍니다. 특정 조건이 참일 때만 특정 코드 블록을 실행하고, 그렇지 않으면 건너뛰게 합니다. 이 장에서는 Python의 if 문과 그 변형을 소개하며, 이는 프로그램에서 의사결정의 기초가 됩니다.
조건문을 숙달하면 사용자 입력에 지능적으로 반응하고, 다양한 시나리오를 적절히 처리하며, 논리적 추론이 필요한 문제를 해결하는 프로그램을 작성할 수 있습니다.
8.1) 단순 if 문
Python에서 의사결정의 가장 기본 형태는 단순 if 문입니다. 이것은 Python에 이렇게 말합니다: “이 조건이 참이면 이 코드 블록을 실행하라. 그렇지 않으면 건너뛰고 계속하라.”
8.1.1) if 문의 구조
다음은 if 문의 기본 문법입니다:
if condition:
# condition이 True일 때 실행할 코드
statement1
statement2
# ... 더 많은 문장들각 부분을 나눠서 살펴보겠습니다:
if키워드: 조건문을 시작합니다- 조건 (condition):
True또는False로 평가되는 불리언 (boolean) 표현식입니다(7장에서 다룸) - 콜론 (
:): 필수이며 조건 줄의 끝을 표시합니다 - 들여쓰기된 코드 블록:
if아래로 들여쓰기된 모든 문장은 조건이True일 때만 실행됩니다
Python에서는 들여쓰기가 매우 중요합니다. 들여쓰기된 줄들은 if 문에 속하는 코드 블록 (code block)을 이룹니다. Python은 들여쓰기(일반적으로 공백 4개)를 사용해 어떤 문장이 조건 블록의 일부인지 결정합니다.
간단한 예시는 다음과 같습니다:
# temperature_check.py
temperature = 30
if temperature > 25:
print("It's a warm day!")
print("Consider wearing light clothing.")
print("Have a great day!") # 이 줄은 항상 실행됩니다Output:
It's a warm day!
Consider wearing light clothing.
Have a great day!이 예시에서는:
- 조건
temperature > 25는True로 평가됩니다(30 > 25이므로) - 들여쓰기된
print()문 두 개는if블록의 일부이므로 모두 실행됩니다 - 마지막
print()문은 들여쓰기되지 않았기 때문에 항상 실행됩니다—if블록의 일부가 아닙니다
이제 조건이 False일 때 어떤 일이 일어나는지 봅시다:
# temperature_check_cool.py
temperature = 18
if temperature > 25:
print("It's a warm day!")
print("Consider wearing light clothing.")
print("Have a great day!") # 이 줄은 항상 실행됩니다Output:
Have a great day!이번에는:
- 조건
temperature > 25는False로 평가됩니다(18은 25보다 크지 않으므로) - 들여쓰기된 두 문장은 완전히 건너뛰어집니다
- 마지막
print()만if블록 밖에 있으므로 실행됩니다
8.1.2) 7장의 조건 사용하기
7장에서 나온 어떤 불리언 표현식이든 if 문의 조건으로 사용할 수 있습니다. 여기에는 다음이 포함됩니다:
비교 연산자:
# voting_eligibility.py
age = 16
if age >= 18:
print("You are eligible to vote.")
# 16 >= 18은 False이므로 아무것도 출력되지 않습니다
score = 85
if score >= 60:
print("You passed the exam!") # Output: You passed the exam!in과 not in을 사용한 멤버십 테스트:
# user_access.py
username = "alice"
banned_users = ["bob", "charlie", "dave"]
if username not in banned_users:
print(f"Welcome, {username}!") # Output: Welcome, alice!
favorite_color = "blue"
if "u" in favorite_color:
print("Your favorite color contains the letter 'u'.") # Output: Your favorite color contains the letter 'u'.직접 불리언 값:
# weather_check.py
is_raining = True
if is_raining:
print("Don't forget your umbrella!") # Output: Don't forget your umbrella!참/거짓으로 평가되는 값 (truthiness and falsiness)(7.4절에서 다룸):
# name_input.py
user_input = input("Enter your name: ")
if user_input: # 빈 문자열은 falsy이고, 비어 있지 않으면 truthy입니다
print(f"Hello, {user_input}!")
else:
print("You didn't enter a name.")8.1.3) if 블록에 여러 문장 넣기
if 블록에는 필요한 만큼 많은 문장을 포함할 수 있습니다. if 줄 아래로 들여쓰기된 모든 문장은 그 블록에 속합니다:
# bank_withdrawal.py
balance = 1500
withdrawal = 200
if withdrawal <= balance:
balance = balance - withdrawal # balance에서 withdrawal을 뺍니다
print(f"Withdrawal successful!")
print(f"Your new balance is: ${balance}")
print("Thank you for your transaction.")
print("Transaction complete.") # 항상 실행됩니다Output:
Withdrawal successful!
Your new balance is: $1300
Thank you for your transaction.
Transaction complete.withdrawal <= balance가 True이기 때문에 네 문장 모두 실행됩니다. 출금액을 2000으로 바꾸면:
# bank_withdrawal_insufficient.py
balance = 1500
withdrawal = 2000
if withdrawal <= balance:
balance = balance - withdrawal
print(f"Withdrawal successful!")
print(f"Your new balance is: ${balance}")
print("Thank you for your transaction.")
print("Transaction complete.") # 항상 실행됩니다Output:
Transaction complete.이제 조건이 False이므로 들여쓰기된 문장은 하나도 실행되지 않습니다. 잔액은 1500으로 변하지 않습니다.
8.2) 둘 중 하나를 선택하는 if-else 사용하기
조건이 참일 때는 한 코드 블록을 실행하고, 거짓일 때는 다른 코드 블록을 실행하는 식으로 두 가지 대안 중 하나를 선택해야 할 때가 많습니다. if-else 문은 이런 둘 중 하나(either-or)의 의사결정을 처리합니다.
8.2.1) if-else의 구조
문법은 다음과 같습니다:
if condition:
# condition이 True일 때 실행할 코드
statement1
statement2
else:
# condition이 False일 때 실행할 코드
statement3
statement4else 절은 대안 경로를 제공합니다. 두 블록 중 정확히 하나만 실행됩니다—둘 다 실행되거나, 둘 다 실행되지 않는 일은 없습니다.
실용적인 예시를 보겠습니다:
# age_verification.py
age = int(input("Enter your age: "))
if age >= 18:
print("You are an adult.")
print("You can vote in elections.")
else:
print("You are a minor.")
print("You cannot vote yet.")
print("Thank you for providing your age.")25를 입력하면:
You are an adult.
You can vote in elections.
Thank you for providing your age.15를 입력하면:
You are a minor.
You cannot vote yet.
Thank you for providing your age.조건에 따라 두 블록 중 정확히 하나가 실행된다는 점에 주목하세요. 마지막 print() 문은 두 블록 모두 밖에 있으므로 항상 실행됩니다.
8.2.2) 이진 결정 만들기
if-else는 가능한 결과가 정확히 두 가지인 이진 결정에 완벽합니다:
# even_odd_checker.py
number = int(input("Enter a number: "))
if number % 2 == 0:
print(f"{number} is even.")
else:
print(f"{number} is odd.")# password_verification.py
stored_password = "python123"
entered_password = input("Enter password: ")
if entered_password == stored_password:
print("Access granted.")
print("Welcome to the system!")
else:
print("Access denied.")
print("Incorrect password.")8.3) if-elif-else로 여러 선택 처리하기
현실 세계의 결정은 종종 두 가지보다 많은 선택지를 포함합니다. 표준 배송을 청구해야 할까요, 빠른 배송을 청구해야 할까요, 아니면 익일 배송을 청구해야 할까요? 성적이 A, B, C, D, F 중 무엇인가요? if-elif-else 체인은 서로 배타적인 여러 대안을 처리합니다.
8.3.1) if-elif-else의 구조
문법은 다음과 같습니다:
if condition1:
# condition1이 True이면 실행
block1
elif condition2:
# condition1이 False이고 condition2가 True이면 실행
block2
elif condition3:
# condition1과 condition2가 False이고 condition3이 True이면 실행
block3
else:
# 모든 조건이 False일 때 실행
block4if-elif-else 체인에 대한 핵심 포인트:
elif는 "else if"의 줄임말입니다: 추가로 검사할 조건을 제공합니다- 순서가 중요합니다: Python은 위에서 아래로 조건을 검사합니다
- 첫 번째로 일치하는 조건이 승리합니다: 어떤 조건이
True가 되면 그 블록이 실행되고 나머지는 건너뜁니다 - 정확히 하나의 블록이 실행됩니다: 체인에서 최대 한 블록만 실행됩니다
else는 선택 사항입니다: 이전 조건들에서 처리되지 않은 모든 경우를 잡아냅니다
실용적인 예시를 보겠습니다:
# grade_calculator.py
score = int(input("Enter your exam score (0-100): "))
if score >= 90:
grade = "A"
print("Excellent work!")
elif score >= 80:
grade = "B"
print("Good job!")
elif score >= 70:
grade = "C"
print("Satisfactory.")
elif score >= 60:
grade = "D"
print("You passed, but consider reviewing the material.")
else:
grade = "F"
print("Unfortunately, you did not pass.")
print(f"Your grade is: {grade}")85를 입력하면:
Good job!
Your grade is: B무슨 일이 일어나는지 추적해 봅시다:
score >= 90확인: False(85는 90 이상이 아니므로), 이 블록을 건너뜁니다score >= 80확인: True(85 >= 80), 이 블록을 실행합니다- 일치하는 조건을 찾았으므로 나머지
elif와else블록을 모두 건너뜁니다
55를 입력하면:
Unfortunately, you did not pass.
Your grade is: F모든 조건이 False이므로 else 블록이 실행됩니다.
8.3.2) elif 체인에서 순서가 중요한 이유
Python은 True 조건을 찾는 즉시 검사를 멈추기 때문에 조건의 순서는 매우 중요합니다. 다음의 잘못된 성적 시스템을 생각해 봅시다:
# INCORRECT ORDER - Don't do this!
score = 85
if score >= 60: # This will match first!
grade = "D"
elif score >= 70:
grade = "C"
elif score >= 80:
grade = "B"
elif score >= 90:
grade = "A"
else:
grade = "F"
print(f"Your grade is: {grade}") # Output: Your grade is: D이것은 잘못된 결과를 냅니다! 점수 85는 B여야 하지만, score >= 60이 먼저 검사되고 True가 되기 때문에 D가 됩니다. Python은 score >= 80 조건까지 도달하지 않습니다.
항상 조건을 가장 구체적인 것에서 가장 덜 구체적인 것으로 정렬하세요:
# CORRECT ORDER
score = 85
if score >= 90: # Most specific
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else: # Least specific
grade = "F"
print(f"Your grade is: {grade}") # Output: Your grade is: B8.3.3) else 없이 elif 사용하기
else 절은 선택 사항입니다. 때로는 특정 경우만 처리하고, 나머지는 아무것도 하지 않기를 원할 수 있습니다:
# weekend_checker.py
day = input("Enter a day of the week: ").lower()
if day == "saturday" or day == "sunday":
print("It's the weekend! Time to relax.")
elif day == "friday":
print("It's Friday! The weekend is almost here.")
elif day in ["monday", "tuesday", "wednesday", "thursday"]:
print("It's a weekday. Time to work or study.")
# else 절 없음 - 이들 중 어느 것도 일치하지 않으면 아무 일도 일어나지 않습니다
print("Have a great day!")"holiday"를 입력하면:
Have a great day!어떤 조건도 일치하지 않았고 else 절도 없으므로, 마지막 print()만 실행됩니다.
8.4) 중첩 if 문
때로는 결정 안에서 또 다른 결정을 내려야 합니다. 중첩 if 문 (nested if statements)은 한 조건문 안에 또 다른 조건문을 넣어서, 초기 조건이 만족된 후에만 추가 조건을 검사할 수 있게 해줍니다.
8.4.1) 중첩 조건 이해하기
중첩 if 문은 아직 의미가 없는 조건을 검사하는 것을 피하게 해주기 때문에 강력합니다. 예를 들어 사용자가 계정이 없다면 비밀번호를 물어볼 필요가 없습니다. 중첩을 사용하면 어떤 질문들은 다른 질문에 답한 후에야 의미가 생기는, 현실 세계의 의사결정 과정에 맞게 로직을 구조화할 수 있습니다.
중첩 if 문은 단순히 다른 if 블록 안에 들어 있는 if 문(또는 if-elif-else 체인)입니다:
if outer_condition:
# outer_condition이 True일 때 이 코드가 실행됩니다
if inner_condition:
# 두 조건이 모두 True일 때 이 코드가 실행됩니다
inner_block
else:
# outer_condition은 True지만 inner_condition이 False일 때 실행됩니다
inner_else_block
else:
# outer_condition이 False일 때 실행됩니다
outer_else_block안쪽 if 문은 바깥 조건이 True일 때만 평가됩니다. 이는 의사결정의 계층 구조를 만듭니다.
간단한 예시는 다음과 같습니다:
# account_login.py
has_account = input("Do you have an account? (yes/no): ").lower() == "yes"
if has_account:
print("Welcome back!")
password = input("Enter your password: ")
if password == "secret123":
print("Login successful!")
print("Access granted to your dashboard.")
else:
print("Incorrect password.")
print("Access denied.")
else:
print("Please create an account first.")
print("Visit our registration page.")"yes"라고 답하고 올바른 비밀번호를 입력하면:
Welcome back!
Login successful!
Access granted to your dashboard."yes"라고 답했지만 잘못된 비밀번호를 입력하면:
Welcome back!
Incorrect password.
Access denied."no"라고 답하면:
Please create an account first.
Visit our registration page.사용자에게 계정이 있을 때만 비밀번호 검사가 일어나는 것을 볼 수 있습니다. 이것이 중첩의 핵심 이점입니다—불필요한 검사를 피할 수 있습니다.
8.4.2) 중첩 if 문을 사용해야 할 때
중첩 if 문은 다음과 같은 경우에 유용합니다:
- 결정이 이전 결정에 의존할 때: 다른 조건이 충족된 후에만 어떤 것을 확인해야 합니다
- 의사결정 트리 만들기: 각 레벨이 가능성을 좁혀 나갑니다
- 전제 조건 검증: 자세한 요구사항을 확인하기 전에 기본 요구사항을 확인합니다
- 불필요한 검사 피하기: 앞선 조건이 실패했을 때 비용이 큰 작업을 건너뜁니다
예시: 대출 자격
# loan_eligibility.py
age = int(input("Enter your age: "))
if age >= 18:
print("Age requirement met.")
income = float(input("Enter your annual income: $"))
if income >= 30000:
print("Income requirement met.")
credit_score = int(input("Enter your credit score: "))
if credit_score >= 650:
print("Congratulations! You are eligible for a loan.")
print("Please proceed to the application form.")
else:
print("Sorry, your credit score is too low.")
print("Minimum required: 650")
else:
print("Sorry, your income is too low.")
print("Minimum required: $30,000")
else:
print("Sorry, you must be 18 or older to apply.")이것은 각 레벨이 이전 레벨에 의존하는 의사결정 트리를 만듭니다. 나이가 18세 미만이면 소득이나 신용 점수는 묻지 않습니다.
8.4.3) 과도한 중첩 피하기
중첩은 강력하지만, 너무 많은 레벨은 코드를 읽고 이해하기 어렵게 만듭니다. 다음과 같이 깊게 중첩된 예시를 보세요:
# 너무 깊게 중첩됨 - 따라가기 어렵습니다
if condition1:
if condition2:
if condition3:
if condition4:
if condition5:
print("All conditions met!")이것은 읽기도 어렵고 유지보수도 어렵습니다. 중첩을 줄이기 위한 전략은 다음과 같습니다:
전략 1: 적절할 때 조건 결합하기
and 연산자는 9장에서 자세히 배우겠지만, 지금은 여러 조건이 동시에 만족되는지 한 번에 검사할 수 있게 해준다는 것만 알아두세요:
# 더 나음: 'and'로 조건을 결합하기(9장에서 자세히 설명합니다)
# 지금은 여러 조건이 모두 참일 때만 True가 된다고만 기억하세요
if condition1 and condition2 and condition3 and condition4 and condition5:
print("All conditions met!")전략 2: 조기 반환(early returns) 사용하기(19장에서 배울 함수에서 작업할 때):
# 함수에서는 일찍 return할 수 있습니다
def check_eligibility(age, income, credit_score):
if age < 18:
return "Too young"
if income < 30000:
return "Income too low"
if credit_score < 650:
return "Credit score too low"
return "Eligible"전략 3: 적절할 때 elif로 평탄화하기:
# 구간을 검사하는 중첩 if 대신
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
# ... 등등8.5) if 문에서 흔히 하는 실수(들여쓰기, 콜론, 논리)
경험 많은 프로그래머도 if 문에서 실수합니다. 이 절에서는 초보자가 자주 마주치는 오류와 이를 피하는 방법을 다룹니다.
8.5.1) 들여쓰기 오류
Python은 들여쓰기를 사용해 어떤 문장이 어떤 블록에 속하는지 결정합니다. 잘못된 들여쓰기는 가장 흔한 오류 원인 중 하나입니다.
문제 1: 들여쓰기 누락
# INCORRECT - IndentationError
age = 20
if age >= 18:
print("You are an adult.") # 들여쓰지 않았습니다!이것은 다음을 발생시킵니다:
File "example.py", line 4
print("You are an adult.")
^
IndentationError: expected an indented block해결책: if 문 아래의 블록은 항상 들여쓰기하세요:
# CORRECT
age = 20
if age >= 18:
print("You are an adult.") # 올바르게 들여쓰기됨문제 2: 일관되지 않은 들여쓰기
# INCORRECT - 공백과 탭을 섞거나, 공백 수가 일관되지 않음
if temperature > 30:
print("It's hot!")
print("Stay hydrated!") # 공백이 더 많음 - 들여쓰기가 일관되지 않음해결책: 일관된 들여쓰기를 사용하세요(Python 표준은 공백 4개):
# CORRECT
if temperature > 30:
print("It's hot!")
print("Stay hydrated!") # 같은 들여쓰기 레벨문제 3: 잘못된 중첩 들여쓰기
# INCORRECT - 들여쓰기 레벨이 잘못됨
if has_account:
print("Welcome!")
if password == "correct":
print("Login successful!") # 더 들여써야 합니다해결책: 중첩 레벨마다 추가 들여쓰기가 필요합니다:
# CORRECT
if has_account:
print("Welcome!")
if password == "correct":
print("Login successful!") # 중첩 블록에 맞게 올바르게 들여쓰기됨8.5.2) 콜론 누락
if, elif, else 줄 끝의 콜론(:)은 필수입니다. 이를 빼먹는 것은 매우 흔한 실수입니다:
# INCORRECT - SyntaxError: missing colon
if age >= 18
print("Adult")이것은 다음을 발생시킵니다:
File "example.py", line 2
if age >= 18
^
SyntaxError: invalid syntax해결책: 항상 콜론을 포함하세요:
# CORRECT
if age >= 18:
print("Adult")이는 elif와 else에도 동일하게 적용됩니다:
# CORRECT - 모든 콜론이 포함됨
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
else:
grade = "F"8.5.3) 잘못된 비교 연산자
문제 1: 비교(==) 대신 대입(=) 사용하기
# INCORRECT - age에 18을 대입할 뿐, 비교하지 않습니다!
age = 20
if age = 18: # SyntaxError
print("You are 18")해결책: 비교에는 ==를 사용하세요:
# CORRECT
age = 20
if age == 18:
print("You are 18")8.5.4) 논리 오류로 인한 도달 불가능 코드
문제: 절대로 True가 될 수 없는 조건
# INCORRECT - elif는 절대 실행될 수 없습니다
score = 85
if score >= 60:
print("You passed!")
elif score >= 80: # 절대 실행되지 않습니다!
print("You got a B!")score가 85라면 첫 조건(score >= 60)이 True이므로 elif는 검사조차 되지 않습니다. 순서가 잘못되었습니다.
해결책: 조건을 가장 구체적인 것부터 가장 덜 구체적인 것으로 정렬하세요:
# CORRECT
score = 85
if score >= 80:
print("You got a B!")
elif score >= 60:
print("You passed!")8.5.5) 비어 있는 if 블록
Python에서는 비어 있는 if 블록을 가질 수 없습니다:
# INCORRECT - SyntaxError
if temperature > 30:
# 나중에 여기 코드를 추가할게요
print("Done")이것은 다음을 발생시킵니다:
File "example.py", line 3
print("Done")
^
IndentationError: expected an indented block해결책: 플레이스홀더로 pass 문을 사용하세요(다음 절에서 다룸):
# CORRECT - pass를 플레이스홀더로 사용
if temperature > 30:
pass # TODO: 나중에 여기 코드를 추가
print("Done")8.6) 블록에서 플레이스홀더로 pass 사용하기
코드를 작성하다 보면 if 문이 필요하다는 것은 알지만, 그 안에 어떤 코드를 넣을지 아직 결정하지 못했을 때가 있습니다. Python은 비어 있는 코드 블록을 허용하지 않으므로, 유효하지만 “아무 것도 하지 않는” 블록을 만드는 방법이 필요합니다. 그때 pass 문이 등장합니다.
8.6.1) pass란 무엇인가?
pass 문은 널 연산 (null operation)입니다—Python이 이를 실행해도 아무 일도 일어나지 않습니다. 구현이 아직 준비되지 않았더라도 문법적으로 올바른 코드를 작성할 수 있게 해주는 플레이스홀더입니다.
if condition:
pass # 지금은 아무 것도 하지 않음pass는 Python에게 이렇게 말하는 방법이라고 생각하세요: “여기에 코드가 필요하다는 것은 알지만, 나중에 채우겠다.” 프로그램의 구조를 스케치하는 개발 과정에서 특히 유용합니다.
8.6.2) pass가 필요한 이유
Python은 모든 코드 블록에 최소 한 개의 문장이 있어야 합니다. 비어 있는 블록은 문법 오류를 일으킵니다:
# INCORRECT - 이것은 오류를 발생시킵니다
if age >= 18:
# TODO: Add adult logic here
print("Done")Error:
File "example.py", line 3
print("Done")
^
IndentationError: expected an indented blockpass를 사용하면 코드가 문법적으로 유효해집니다:
# CORRECT - pass를 플레이스홀더로 사용
if age >= 18:
pass # TODO: Add adult logic here
print("Done")8.6.3) pass의 흔한 사용 사례
사용 1: 개발 중 플레이스홀더
프로그램의 구조를 개요로 잡고 있지만 아직 모든 것을 구현하지 않았을 때:
# user_system.py
user_type = input("Enter user type (admin/user/guest): ").lower()
if user_type == "admin":
pass # TODO: Implement admin features
elif user_type == "user":
pass # TODO: Implement user features
elif user_type == "guest":
print("Welcome, guest! Limited access granted.")
else:
print("Invalid user type.")이는 미래 작업을 위한 플레이스홀더를 남겨두면서, 구현한 부분을 테스트하고 프로그램을 실행할 수 있게 해줍니다.
사용 2: 한 분기에서 의도적으로 아무 것도 하지 않기
때로는 특정 경우에 정말로 아무 것도 하지 않길 원하지만, 다른 경우는 처리해야 합니다:
# positive_numbers.py
# 양수만 처리합니다
number = int(input("Enter a number: "))
if number > 0:
result = number * 2
print(f"Double of {number} is {result}")
elif number == 0:
pass # 0은 유효하지만 아무 작업도 필요하지 않습니다
else:
print("Negative numbers are not allowed.")8.6.4) 다른 맥락에서의 pass
이 장에서는 if 문에서의 pass에 집중했지만, Python을 더 배워가면서 다른 맥락에서도 pass를 만나게 될 것입니다:
- 함수 (Functions)(20장): 함수 본문의 플레이스홀더
- 클래스 (Classes)(31장): 클래스 정의의 플레이스홀더
- 반복문 (Loops)(11~12장): 반복문 본문의 플레이스홀더
- 예외 처리기 (Exception handlers)(29장): 오류를 의도적으로 무시하기
지금은 pass가 “유효하지만 비어 있는 코드 블록”을 만들기 위한 도구라는 점만 기억해 두세요.
모두 종합해 보기
이 장에서는 조건문을 사용해 프로그램을 지능적이고 반응형으로 만드는 방법을 배웠습니다. 핵심 개념을 복습해 봅시다:
단순 if 문은 조건이 참일 때만 코드를 실행합니다:
if temperature > 30:
print("It's hot outside!")if-else 문은 두 가지 대안 중 하나를 선택합니다:
if age >= 18:
print("Adult")
else:
print("Minor")if-elif-else 체인은 서로 배타적인 여러 옵션을 처리합니다:
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "F"중첩 if 문은 결정 안에서 결정을 내립니다:
if has_account:
if password_correct:
print("Welcome!")
else:
print("Wrong password")
else:
print("Create an account")피해야 할 흔한 실수:
if,elif,else뒤에 콜론 누락- 잘못되었거나 일관되지 않은 들여쓰기
- 비교에
==대신=사용 elif체인의 순서 오류pass없이 비어 있는 블록
pass 문은 개발 중 비어 있는 블록을 위한 플레이스홀더 역할을 합니다.
이제 조건에 따라 지능적으로 결정을 내리는 프로그램을 작성할 도구를 갖추었습니다. 다음 장에서는 여러 조건을 더 정교한 의사결정 로직으로 결합할 수 있게 해주는 불리언 논리 연산자(and, or, not)를 배울 것입니다. 이를 통해 if 문은 더욱 강력하고 표현력 있게 됩니다.