본문 바로가기
IT/파이썬 기초 완전 정복

파이썬 조건문(if, elif, else) 활용하기 (4)

by 지식 발전소 2024. 4. 20.
728x90
반응형

 

조건문이란 무엇인가요?

안녕하세요, 여러분? 오늘은 파이썬 프로그래밍에서 매우 중요한 개념 중 하나인 '조건문'에 대해 알아보도록 하겠습니다. 조건문이 무엇일까요?

 

 

 

조건문이란 특정 조건에 따라 코드를 선택적으로 실행하도록 제어할 수 있는 구문을 말합니다. 말 그대로 '조건'에 따라 프로그램의 동작 방식이 달라지는 것이죠. 이를 통해 프로그램의 흐름을 유동적으로 만들 수 있습니다.

 

이런 조건문은 프로그래밍에서 아주 핵심적인 역할을 합니다. 조건문이 없다면 프로그램은 단순히 입력된 대로만 일방적으로 실행될 뿐입니다. 하지만 조건문을 활용하면 다양한 상황에 맞추어 프로그램을 유연하게 구현할 수 있습니다.

 

컴퓨터 프로그램이 우리가 의도한 대로 정확히 동작하려면 조건문은 필수적입니다. 예를 들어 로그인 기능을 만들 때, 입력된 아이디와 비밀번호가 맞는지 조건문으로 확인해야겠죠. 게임을 만든다면 캐릭터의 HP가 0 이하일 때 죽는 조건을 만들어야 합니다.

 

이처럼 조건문의 개념을 잘 이해하고 적재적소에 활용할 수 있어야 훌륭한 프로그래머가 될 수 있습니다. 그럼 파이썬에서 어떻게 조건문을 사용하는지 하나씩 자세히 알아볼까요?

 

파이썬 if 문

파이썬의 대표적인 조건문으로 우선 if 문을 꼽을 수 있습니다. if 문은 특정 조건이 만족할 때 코드를 실행하도록 합니다.

기본 문법은 다음과 같습니다.

if 조건문:
    수행할 문장1 
    수행할 문장2
    ...
else:
    수행할 문장A
    수행할 문장B
    ...

else 부분은 조건문이 만족하지 않을 때 실행되는 부분입니다. 필수는 아니지만 상황에 따라 작성해주시면 됩니다.

실제 코드 예시를 하나 보겠습니다.

x = 10
if x > 0:
    print("x는 양수입니다.")
else:
    print("x는 음수입니다.")

 

위 코드에서는 x가 0보다 클 경우 "x는 양수입니다."를 출력하고, 그렇지 않으면 "x는 음수입니다."를 출력합니다.

주의해야 할 점은 파이썬에서는 들여쓰기(인덴트)가 매우 중요하다는 것입니다. 다른 언어들과 달리 파이썬에서는 코드 블록을 들여쓰기로 구분합니다. 만약 들여쓰기가 잘못되면 IndentationError가 발생하니 꼭 주의하세요.

if 문은 복잡한 조건을 판별할 때도 활용할 수 있습니다. 예를 들어 아래처럼 논리 연산자(and, or, not)를 사용할 수 있습니다.

age = 25
if age >= 19 and age < 65:
    print("성인입니다.")
else:
    print("아동 또는 노인입니다.")

이렇게 if 문 하나만으로도 다양한 조건을 잡아낼 수 있습니다. if 문의 개념을 잘 이해했다면, 이제 elif 문에 대해서도 알아보겠습니다.

파이썬 elif 문

elif는 'else if'의 준말로, if 문과 else 문 사이에 들어갑니다. 즉, 여러 개의 조건을 판별할 때 사용하는 구문이죠.

기본 문법은 다음과 같습니다.

if 조건문1:
    수행할 문장1
    ...
elif 조건문2: 
    수행할 문장2
    ...
elif 조건문3:
    수행할 문장3
    ...
else:
    수행할 문장A

elif 부분을 여러 번 작성할 수 있으며, 해당 조건을 만족하는 부분의 코드가 실행되고 나머지는 무시됩니다. 마지막 else는 위의 모든 조건을 만족하지 않을 때 실행됩니다.

예시 코드를 하나 보겠습니다.

score = 85

if score >= 90:
    print("A학점입니다.")
elif score >= 80:
    print("B학점입니다.")
elif score >= 70: 
    print("C학점입니다.")
else:
    print("F학점입니다.")

 

위 코드에서는 score가 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 나머지는 F학점이라고 출력합니다.

elif 문을 활용하면 이렇게 다양한 조건을 판별할 수 있습니다. 중첩된 if 문보다 코드가 더 간결하고 보기 좋습니다.

하지만 너무 많은 elif를 사용하면 오히려 코드가 복잡해질 수 있습니다. 상황에 따라 적절히 활용하는 것이 중요합니다.

파이썬 else 문

if 문이나 elif 문에 해당하지 않는 나머지 경우를 처리할 때는 else 문을 사용합니다.

기본 문법은 다음과 같습니다.

if 조건문1:
    수행할 문장1
    ...
elif 조건문2:
    수행할 문장2
    ...
else:
    수행할 문장A

 

예를 들어 앞서 보았던 성적 출력 코드에서 잘못된 점수를 입력했을 경우를 대비해 다음과 같이 else 문을 추가할 수 있습니다.

score = 120  # 잘못된 점수

if score >= 90:
    print("A학점입니다.")
elif score >= 80:
    print("B학점입니다.") 
elif score >= 70:
    print("C학점입니다.")
else:
    print("잘못된 점수입니다.")

 

이렇게 하면 score가 120점이라는 올바르지 않은 값일 때 "잘못된 점수입니다."를 출력하게 됩니다.

else 문은 if, elif로 계속 조건을 나열하기 어려운 상황에서 유용하게 사용할 수 있습니다. 상황에 따라 적절히 활용한다면 프로그램의 안정성을 크게 높일 수 있습니다.

이렇게 파이썬의 조건문인 if, elif, else에 대해서 알아보았습니다. 이 개념을 잘 이해하고 숙달하신다면 프로그램의 흐름을 유연하게 제어할 수 있을 것입니다.

조건식 작성 시 주의사항

프로그래밍에서는 제대로 된 조건을 작성하는 것이 무엇보다 중요합니다. 그렇지 않으면 의도한 대로 프로그램이 동작하지 않거나, 오류가 발생하게 됩니다.

 

그래서 이번에는 조건식을 작성할 때의 주의사항에 대해 살펴보도록 하겠습니다.

  1. 비교 연산자 활용하기

조건문에서 많이 쓰이는 비교 연산자에는 >, <, >=, <=, ==, != 등이 있습니다. 이들을 적절히 활용해 원하는 조건을 만들어야 합니다.

x = 10
y = 5

if x > y:
    print("x가 y보다 큽니다.")
  1. 논리 연산자로 복합 조건 만들기

간단한 조건문으로는 부족할 때가 많습니다. 이때는 and, or, not 같은 논리 연산자를 활용해 복합 조건을 만들 수 있습니다.

age = 25
if age >= 19 and age < 65:
    print("성인입니다.")
  1. 괄호를 이용한 우선순위 정하기

논리 연산자를 여러 개 사용하면 괄호로 우선순위를 정해줘야 합니다. 괄호 사용에 주의하지 않으면 의도와 다르게 동작할 수 있습니다.

x = 10
y = 5
z = 8

if x > y and (x > z or y > z):    
    print("x가 가장 큽니다.")
  1. 참/거짓 판별에 주의하기

파이썬에서는 0, None, 빈 문자열, 빈 리스트, 빈 딕셔너리 등을 False로 판별합니다. 이를 잘 인지하고 코드를 짜야 합니다.

msg = ""

if msg:
    print("메시지가 있습니다.")
else:
    print("메시지가 없습니다.")  # 출력
  1. 대소문자 구분하기

파이썬은 대소문자를 엄격히 구분합니다. msg와 MSG는 전혀 다른 변수로 인식합니다. 많은 버그의 원인이 되니 주의해야 합니다.

 

이렇게 조건문을 작성할 때는 세심한 주의를 기울여야 합니다. 괄호와 대소문자, 참/거짓 판별 등에 매우 유의하시기 바랍니다. 시간이 걸리더라도 제대로 된 조건식을 작성하는 습관을 들이는 것이 중요합니다.

실전 예제로 연습해보기

이제 조건문의 개념과 사용법을 익혔으니 직접 실전 예제를 통해 연습해보겠습니다.

 

시험 점수에 따른 평가 출력하기

score = 78

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C") 
elif score >= 60:
    print("D")
else:
    print("F")

위 코드는 시험 점수에 따라 A, B, C, D, F 등급을 출력합니다.

 

계절 구분하기

month = 5

if month == 12 or month == 1 or month == 2:
    print("겨울입니다.")
elif month >= 3 and month <= 5: 
    print("봄입니다.")
elif month >= 6 and month <= 8:
    print("여름입니다.")
else:
    print("가을입니다.")

위 코드는 몇 월인지에 따라 계절을 구분하여 출력합니다.

 

입력 문자가 숫자인지 확인하기

data = input("숫자를 입력하세요: ")

if data.isdigit(): # 문자열이 숫자로만 이루어졌는지 확인
    num = int(data) # 숫자로 변환
    print(f"입력한 숫자는 {num}입니다.")
else:
    print("숫자가 아닙니다.")

위 코드에서는 입력된 문자열이 숫자인지 isdigit() 메서드로 확인하고, 맞으면 int로 형변환한 뒤 출력합니다.

 

놀이공원 입장료 계산하기

age = 25
is_soldier = True  

if age < 8:
    cost = 0
    print("취학 전 아동은 무료입니다.")
elif age < 14:
    cost = 4000
    print(f"취학 아동 입장료는 {cost}원 입니다.") 
elif age < 19 or is_soldier:
    cost = 8000
    print(f"청소년 입장료는 {cost}원 입니다.")
else:
    cost = 10000
    print(f"어른 입장료는 {cost}원 입니다.")

 

위 코드는 나이와 군인 여부에 따라 놀이공원 입장료를 계산하여 출력합니다.

이렇게 다양한 실전예제를 통해 조건문의 활용법을 연습해보면서 이해도를 높여나가시기 바랍니다.

조건 표현식(Conditional Expression)

앞에서 배운 if문 외에도 파이썬에는 조건 표현식(Conditional Expression) 이라는 것이 있습니다. 이는 매우 간단한 방식으로 조건을 표현할 수 있게 해주죠.

 

조건 표현식의 기본 문법은 다음과 같습니다.

값 = 값1 if 조건 else 값2

예를 들어보겠습니다.

x = 10
result = "양수" if x > 0 else "음수"
print(result)  # "양수" 출력

 

여기서 x가 0보다 크면 result에 "양수"가 할당되고, 그렇지 않으면 "음수"가 할당됩니다.

조건 표현식은 매우 간결하고 한 줄에 조건문을 표현할 수 있다는 장점이 있습니다. 하지만 너무 남용하면 오히려 가독성이 떨어질 수 있으므로 적절히 활용하는 것이 중요합니다.

 

또한 if-else문으로도 충분히 구현할 수 있는 로직이라면 가독성을 위해 if-else를 사용하는 것이 좋습니다. 조건 표현식은 한 줄에 간단히 표현할 수 있는 경우에만 사용하는 것을 권장합니다.

 

따라서 상황에 맞게 if문과 조건 표현식을 적절히 구분해서 활용하는 센스가 필요합니다. 이 두 가지를 잘 익혀두시면 더욱 유연하고 깔끔한 코드를 작성할 수 있을 것입니다.

수준 높은 조건문 작성을 위한 노하우

방금까지 파이썬 조건문의 기본 문법과 활용법들을 알아보았습니다. 하지만 이를 잘 응용해 실제로 유용하고 버그가 없는 코드를 작성하기까지는 한 번에 잘 되지 않습니다. 여기서는 조금 더 수준 높은 조건문 코딩을 위한 노하우를 몇 가지 소개하도록 하겠습니다.

 

코드의 가독성을 높인다

가독성이 높은 코드는 유지보수가 쉽고, 버그가 발생할 확률도 낮아집니다. 중첩된 조건문이 많으면 코드를 이해하기 어려워집니다. 그러므로 간결한 조건식을 사용하고, 조건 표현식을 적절히 활용하는 것도 좋습니다.

 

중복 코드를 제거한다

동일한 코드 블록이 여러 번 반복되면 비효율적입니다. 이럴 때는 해당 코드를 함수나 모듈로 만들어 재사용하는 것이 좋습니다.

 

예외 상황을 고려한다

코드를 작성할 때 에러 상황에 대해서도 항상 염두에 두어야 합니다. 예를 들어 사용자 입력값이 형식에 맞지 않을 경우나 파일이 없을 경우 등의 예외 케이스를 반드시 처리해야 합니다

 

주석을 활용한다

복잡한 조건문의 경우 주석을 달아 설명하면 나중에 코드를 이해하기 쉬워집니다. 하지만 너무 당연한 내용은 주석으로 설명하지 않는 것이 좋습니다

 

효율적인 알고리즘을 선택한다

조건문이 중첩되고 복잡해지면 연산 속도가 크게 떨어질 수 있습니다. 시간 복잡도가 높은 알고리즘보다는 더 효율적인 알고리즘을 사용해야 합니다.

보다 전문적이고 수준 높은 코딩을 하려면 이런 요소들을 잘 갖추어야 합니다. 코드의 가독성, 재사용성, 안정성, 효율성 등에 항상 신경 쓰면서 조건문을 작성하는 습관을 기르시기 바랍니다.

요약

  • 조건문을 통해 특정 조건에 따라 코드를 선택적으로 실행할 수 있습니다.
  • if, elif, else를 사용하여 다양한 조건을 판별하고 그에 맞는 코드를 실행합니다.
  • 조건문에는 비교 연산자, 논리 연산자 등을 활용할 수 있습니다.
  • 조건 표현식을 사용하면 간단한 조건문을 한 줄로 표현할 수 있습니다.
  • 가독성과 효율성을 높이는 노하우들을 익혀 수준 높은 코드를 작성해야 합니다.
  • 실전 예제를 통해 조건문 활용법을 충분히 연습하는 것이 중요합니다.

참고 자료

[1] Lutz, M. (2013). Learning Python: Powerful Object-Oriented Programming. O'Reilly Media.

[2] Guttag, J. V. (2016). Introduction to Computation and Programming Using Python. MIT Press.

[3] Downey, A. B. (2015). Think Python: How to Think Like a Computer Scientist. O'Reilly Media.

[4] Python 공식 문서 - 조건문: https://docs.python.org/3/tutorial/controlflow.html

[5] Python for Everybody - 조건문: https://www.py4e.com/html3/08-conditionals

 

 

한 고대 문서 이야기

여기 한 고대 문서가 있습니다. 이 문서는 B.C. 1,500년 부터 A.D 100년까지 약 1,600 여 년 동안 기록되었습니다. 이 문서의 저자는 약 40 명입니다. 이 문서의 고대 사본은 25,000 개가 넘으나, 사본간 오

gospel79.tistory.com

 

유튜브 프리미엄 월 1만원 할인받고 월 4000원에 이용하는 방법

올해 5월부터 월 8000원 정도이던 유튜브 프리미엄 요금이 15000원 정도로 인상됩니다. 각종 OTT 서비스, ChatGPT 같은 서비스들이 늘어나다보니 이런 거 몇 개만 이용하더라도 월 이용요금이 5만원을

stock79.tistory.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글