2025.01.18 - [🐍 Python/🐍 기초 문법] - [기초문법 3강] 파이썬 연산자와 표현식, 기본부터 실습까지
[기초문법 3강] 파이썬 연산자와 표현식, 기본부터 실습까지
2025.01.17 - [🐍 Python/🐍 기초 문법] - [기초문법 2강] 파이썬 변수와 데이터 타입, 기초부터 제대로 배우기 [기초문법 2강] 파이썬 변수와 데이터 타입, 기초부터 제대로 배우기파이썬(Python)은 배
boohoday.com
목차
1. 조건문이란?{#section1}
조건문의 개념
프로그래밍에서 조건문(Conditional Statement)은 특정 조건이 충족될 때 실행되는 코드 블록을 의미합니다.
즉, 어떤 상황이 참(True)일 때 실행하고, 거짓(False)일 경우 실행되지 않도록 제어하는 구조입니다.
조건문의 필요성
조건문이 없다면, 프로그램은 항상 같은 방식으로 실행되므로 사용자 입력이나 특정 상황에 따라 달라지는 동적인 프로그램을 만들 수 없습니다.
예를 들어, 로그인 시스템, 게임의 점수 판별, 쇼핑몰 할인 적용 등에서 조건문이 필수적으로 사용됩니다.
조건문이 없다면?
print("로그인 성공!") # 항상 실행됨 (비밀번호 검증 불가능)
조건문을 사용하면?
password = input("비밀번호를 입력하세요: ")
if password == "1234":
print("로그인 성공!")
else:
print("비밀번호가 틀렸습니다.")
조건문의 기본 구조
파이썬에서 조건문은 if, elif, else 세 가지 키워드로 이루어집니다.
기본적인 흐름은 다음과 같습니다.
조건문 기본 형태
if 조건:
# 조건이 참(True)일 때 실행될 코드
elif 조건:
# 첫 번째 조건이 거짓(False)이고, 두 번째 조건이 참(True)일 때 실행될 코드
else:
# 위의 모든 조건이 거짓(False)일 때 실행될 코드
if는 필수이며, elif, else는 선택적으로 사용할 수 있습니다.
들여쓰기(Indentation)가 중요합니다! (들여쓰기를 하지 않으면 오류 발생)
2. if문 기본 구조
if문이란?
if 문은 가장 기본적인 조건문이며, 특정 조건이 참(True)일 때 코드 블록을 실행하는 구조입니다.
기본 구조
if 조건:
실행할 코드
예제: 숫자가 양수인지 확인
number = 10
if number > 0:
print("양수입니다.")
if문의 실행 흐름
조건문이 실행될 때, Python은 조건을 평가한 후 True일 경우 코드 블록을 실행합니다.
조건문 실행 흐름 예제
x = 5
if x > 0:
print("x는 0보다 큽니다.")
print("조건이 참이므로 실행됩니다.")
조건이 거짓일 경우 실행되지 않는 예제
x = -3
if x > 0:
print("이 메시지는 출력되지 않습니다.")
3. if-else 문
if-else란?
if-else 문은 조건이 참(True)일 때 실행할 코드와, 거짓(False)일 때 실행할 코드를 구분할 때 사용됩니다.
기본 구조
if 조건:
실행할 코드 (조건이 참일 경우)
else:
실행할 코드 (조건이 거짓일 경우)
예제: 짝수와 홀수 판별하기
number = int(input("숫자를 입력하세요: "))
if number % 2 == 0:
print("짝수입니다.")
else:
print("홀수입니다.")
if-else 실행 흐름
조건이 참(True)일 경우 if 블록의 코드가 실행되고, 거짓(False)일 경우 else 블록의 코드가 실행됩니다.
예제: 나이에 따른 성인 여부 판별
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
4. if-elif-else 문
if-elif-else란?
if-elif-else 문은 여러 개의 조건을 평가할 때 사용합니다. if 문만 사용할 경우 여러 조건을 따로 검사해야 하지만, elif 문을 사용하면 한 번에 여러 조건을 평가할 수 있습니다.
기본 구조
if 조건1:
실행할 코드 (조건1이 참일 경우)
elif 조건2:
실행할 코드 (조건1이 거짓이고, 조건2가 참일 경우)
else:
실행할 코드 (위의 모든 조건이 거짓일 경우)
예제: 성적에 따른 등급 부여하기
score = int(input("점수를 입력하세요: "))
if score >= 90:
print("A 학점")
elif score >= 80:
print("B 학점")
elif score >= 70:
print("C 학점")
elif score >= 60:
print("D 학점")
else:
print("F 학점")
if-elif-else 실행 흐름
if 문이 먼저 실행되며, 조건이 참(True)일 경우 해당 블록의 코드만 실행됩니다. 그렇지 않을 경우 elif 문을 차례대로 검사하며, 하나의 elif 조건이 참이면 실행 후 종료됩니다.
예제: 시간대에 따라 다른 인사말 출력하기
hour = int(input("현재 시간을 입력하세요 (0-23): "))
if hour < 12:
print("좋은 아침입니다!")
elif hour < 18:
print("좋은 오후입니다!")
else:
print("좋은 저녁입니다!")
if-elif-else 문을 사용하면 여러 개의 조건을 깔끔하게 처리할 수 있습니다.
5. 조건문과 비교 연산자
비교 연산자의 개념
비교 연산자는 두 개의 값을 비교하고 그 결과를 True(참) 또는 False(거짓)로 반환하는 연산자입니다. 조건문에서 주로 사용되며, 프로그램의 흐름을 제어하는 핵심 요소입니다.
주요 비교 연산자
연산자 | 의미 | 예제 | 결과 |
== | 두 값이 같은지 비교 | 5 == 5 | True |
!= | 두 값이 다른지 비교 | 5 != 3 | True |
> | 왼쪽 값이 더 큰지 비교 | 7 > 3 | True |
< | 왼쪽 값이 더 작은지 비교 | 2 < 5 | True |
>= | 왼쪽 값이 크거나 같은지 비교 | 5 >= 5 | True |
<= | 왼쪽 값이 작거나 같은지 비교 | 3 <= 5 | True |
비교 연산자를 활용한 조건문 예제
예제: 숫자가 양수, 음수 또는 0인지 판별
num = int(input("숫자를 입력하세요: "))
if num > 0:
print("양수입니다.")
elif num < 0:
print("음수입니다.")
else:
print("0입니다.")
비교 연산자와 함께 조건문을 사용하는 예제
예제: 나이에 따른 영화 관람 가능 여부 판별
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인 영화 관람이 가능합니다.")
else:
print("성인 영화 관람이 불가능합니다.")
비교 연산자는 조건문에서 자주 사용되며, 프로그램의 흐름을 제어하는 데 필수적인 요소입니다.
6. 논리 연산자와 조건문
논리 연산자의 개념
논리 연산자는 여러 개의 조건을 조합하여 하나의 복합적인 조건을 만들 때 사용됩니다. 조건문과 함께 사용되며, 결과는 True(참) 또는 False(거짓)로 반환됩니다.
주요 논리 연산자
연산자 | 의미 | 예제 | 결과 |
and | 모든 조건이 참이면 참 | (5 > 3) and (10 > 5) | True |
or | 하나라도 참이면 참 | (5 > 3) or (10 < 5) | True |
not | 참을 거짓으로, 거짓을 참으로 반전 | not (5 > 3) | False |
논리 연산자를 활용한 조건문 예제
예제: 나이가 18세 이상이고, 학생증이 있는 경우 영화 할인 가능
age = int(input("나이를 입력하세요: "))
has_student_id = input("학생증이 있습니까? (y/n): ")
if age >= 18 and has_student_id == "y":
print("영화 할인 적용 가능합니다.")
else:
print("영화 할인 적용이 불가능합니다.")
논리 연산자와 함께 조건문을 사용하는 예제
예제: 비밀번호가 맞거나, 관리자 모드일 경우 로그인 허용
password = input("비밀번호를 입력하세요: ")
is_admin = input("관리자 모드입니까? (y/n): ")
if password == "secure123" or is_admin == "y":
print("로그인 성공!")
else:
print("로그인 실패. 다시 시도하세요.")
논리 연산자는 여러 개의 조건을 동시에 체크할 때 필수적으로 사용되며, 보다 유연한 조건문을 작성할 수 있도록 도와줍니다.
7. 중첩 조건문
중첩 조건문의 개념
중첩 조건문(Nested Conditional Statements)은 조건문 안에 또 다른 조건문이 포함된 형태를 의미합니다. 즉, 한 조건이 참(True)일 때 다시 또 다른 조건을 검사하는 구조입니다.
중첩 조건문의 기본 구조
if 조건1:
if 조건2:
실행할 코드 (조건1과 조건2 모두 참일 경우)
else:
실행할 코드 (조건1이 참이고, 조건2가 거짓일 경우)
else:
실행할 코드 (조건1이 거짓일 경우)
중첩 조건문을 활용한 예제
예제: 나이에 따른 영화 관람 가능 여부 (청소년 보호법 적용)
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인 영화 관람이 가능합니다.")
else:
if age >= 15:
print("15세 이상 관람가 영화만 볼 수 있습니다.")
else:
print("모든 성인 영화 관람이 불가능합니다.")
중첩 조건문을 사용할 때 주의할 점
- 들여쓰기(Indentation) 유지:
- 파이썬에서는 들여쓰기가 중요하므로, 중첩될수록 가독성이 떨어지지 않도록 주의해야 합니다.
- 불필요한 중첩 피하기:
- 너무 깊게 중첩되면 코드가 복잡해질 수 있으므로, elif를 활용하거나 논리 연산자를 사용하는 것이 더 깔끔할 수도 있습니다.
중첩 조건문을 개선한 예제
위의 예제는 다음과 같이 elif를 사용하여 더 깔끔하게 만들 수도 있습니다.
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인 영화 관람이 가능합니다.")
elif age >= 15:
print("15세 이상 관람가 영화만 볼 수 있습니다.")
else:
print("모든 성인 영화 관람이 불가능합니다.")
중첩 조건문은 특정 상황에서 유용하게 사용되지만, 코드가 너무 깊게 중첩되지 않도록 주의하는 것이 중요합니다.
8. 조건문을 활용한 실전 예제
실전 예제 1: 사용자 입력을 받아 특정 조건에 따라 메시지 출력
사용자로부터 입력을 받아 특정 조건에 따라 적절한 메시지를 출력하는 프로그램을 만들어 보겠습니다.
name = input("이름을 입력하세요: ")
age = int(input("나이를 입력하세요: "))
if age >= 18:
print(f"{name}님, 성인입니다. 환영합니다!")
elif age >= 13:
print(f"{name}님, 청소년입니다. 일부 콘텐츠는 제한될 수 있습니다.")
else:
print(f"{name}님, 어린이입니다. 보호자의 동반이 필요합니다.")
실전 예제 2: 나이에 따른 요금 계산 프로그램
이제 나이에 따라 다른 요금을 부과하는 프로그램을 만들어 보겠습니다.
age = int(input("나이를 입력하세요: "))
if age < 5:
price = 0 # 무료
elif age < 18:
price = 5000 # 청소년 요금
elif age < 65:
price = 10000 # 성인 요금
else:
price = 7000 # 노인 할인 요금
print(f"입장료는 {price}원입니다.")
실전 예제 3: 간단한 로그인 시스템 구현
사용자로부터 아이디와 비밀번호를 입력받아 로그인 여부를 판별하는 프로그램을 만들어 보겠습니다.
USER_ID = "admin"
USER_PASSWORD = "password123"
id_input = input("아이디를 입력하세요: ")
pw_input = input("비밀번호를 입력하세요: ")
if id_input == USER_ID and pw_input == USER_PASSWORD:
print("로그인 성공!")
else:
print("아이디 또는 비밀번호가 잘못되었습니다.")
이와 같이 조건문을 활용하면 다양한 프로그램의 로직을 쉽게 구현할 수 있습니다.
9. 조건문과 리스트, 딕셔너리 활용
리스트에서 특정 값 포함 여부 확인하기
리스트를 활용하면 여러 개의 값을 한 번에 저장하고, 특정 값이 리스트에 존재하는지 쉽게 확인할 수 있습니다.
예제: 특정 과목을 수강하는지 확인
subjects = ["수학", "영어", "과학", "국어"]
subject = input("수강하려는 과목을 입력하세요: ")
if subject in subjects:
print(f"{subject} 과목을 수강할 수 있습니다.")
else:
print(f"{subject} 과목은 개설되지 않았습니다.")
딕셔너리를 활용한 조건문
딕셔너리는 키(Key)와 값(Value)으로 이루어진 데이터 구조이며, 특정 키가 존재하는지 확인할 때 유용합니다.
예제: 사용자 역할 확인
users = {"admin": "관리자", "user1": "일반 사용자", "guest": "게스트"}
user_id = input("아이디를 입력하세요: ")
if user_id in users:
print(f"{user_id}님의 역할은 {users[user_id]}입니다.")
else:
print("등록되지 않은 사용자입니다.")
리스트와 조건문을 활용한 예제
예제: VIP 고객 확인
vip_customers = ["김철수", "이영희", "박지훈"]
customer = input("고객님의 성함을 입력하세요: ")
if customer in vip_customers:
print(f"{customer}님은 VIP 고객입니다. 특별 할인을 적용해 드립니다.")
else:
print(f"{customer}님은 일반 고객입니다.")
리스트와 딕셔너리를 활용하면 데이터를 효과적으로 관리할 수 있으며, 조건문과 함께 사용하면 다양한 로직을 쉽게 구현할 수 있습니다.
10. 정리 및 요약
조건문의 핵심 개념 요약
- if문: 조건이 참(True)일 때 실행되는 기본적인 조건문
- if-else문: 조건이 참이면 실행하고, 거짓이면 다른 코드 실행
- if-elif-else문: 여러 개의 조건을 평가하고, 해당하는 첫 번째 조건 실행
- 비교 연산자: ==, !=, >, <, >=, <= 등을 사용하여 값 비교
- 논리 연산자: and, or, not을 사용하여 복합적인 조건 구성
- 중첩 조건문: 조건문 안에 또 다른 조건문을 포함하여 실행 흐름 제어
- 리스트와 딕셔너리 활용: in 연산자를 사용하여 특정 값 포함 여부 확인
실전에서 조건문을 어떻게 활용할까?
- 사용자 입력을 기반으로 다양한 반응 구현 (예: 로그인 시스템)
- 상품 할인, VIP 혜택 제공 등의 로직 처리
- 데이터 필터링 및 분류 알고리즘 작성
- 게임 개발에서 조건을 기반으로 한 이벤트 처리
추가 학습 추천
- 반복문과 조건문을 함께 활용하는 방법
- 조건문을 활용한 실전 프로젝트 (간단한 챗봇, 자동화 프로그램)
- 예외 처리와 함께 조건문을 사용하는 방법
'🐍 Python > 🐍 기초 문법' 카테고리의 다른 글
파이썬 기초 : 딕셔너리(Dictionary) (0) | 2025.01.19 |
---|---|
[기초문법 5강] 반복문 (for, while) 완벽 가이드 (1) | 2025.01.19 |
[기초문법 3강] 파이썬 연산자와 표현식, 기본부터 실습까지 (0) | 2025.01.18 |
[기초문법 2강] 파이썬 변수와 데이터 타입, 기초부터 제대로 배우기 (0) | 2025.01.17 |
[기초문법 1강] 파이썬 출력, 입력, 형변환 제대로 배우기 (0) | 2025.01.16 |