[Python 입문 강좌 - 13] 파이썬 조건문 정리 및 사용법

 

더보기

 


1. 조건문이란?

 

조건문이란, 특정 조건이 참(True)인지 거짓(False)인지를 판단하여 결과에 따라 코드 블록을 수행할 수 있도록 해주는 구조를 말합니다. 예를 들어, 특정 숫자가 양수인지 음수인지 판단하여 양수일 경우 "양수입니다"라는 메시지를 출력하고, 음수일 경우 "음수입니다"라는 메시지를 출력하는 것처럼 사용할 수 있습니다.

 


2. 조건문의 종류

 

파이썬에서는 다음과 같은 3가지 조건문을 제공합니다. 

 

  • if문
  • if-else문
  • if-elif-else문

 


2.1 if문의 기본 구조

 

if문의 기본 구조는 다음과 같습니다. 조건식은 논리 값(True/False)을 반환하는 식으로, 조건식이 참인 경우에만 코드 블록이 수행됩니다.

 

if 조건식:
    코드 블록

 


2.2 if-else문의 기본 구조

 

if-else문의 기본 구조는 다음과 같습니다. 조건식이 참인 경우에는 코드 블록 1이 수행되고, 거짓인 경우 코드 블록 2가 수행됩니다. 이는 if문과 동일하게 조건식을 판단하는 것이지만, if-else문은 조건식이 참일 경우와 거짓일 경우 모두를 처리할 수 있습니다.

 

if 조건식:
    코드 블록 1
else:
    코드 블록 2

 


2.3 if-elif-else문의 기본 구조

 

if-elif-else문의 기본 구조는 다음과 같습니다. if-elif-else문은 여러 개의 조건식을 판단하여, 각 조건식이 참인 경우에 해당하는 코드 블록이 수행됩니다. 만약 어떤 조건식도 참이 아닌 경우에는 else의 코드 블록이 수행됩니다.

 

if 조건식 1:
    코드 블록 1
elif 조건식 2:
    코드 블록 2
...
elif 조건식 n:
    코드 블록 n
else:
    코드 블록 n+1

 


3. 조건문의 사용

3.1 if문

 

if문은 조건식이 참일 경우에만 그 다음 블록의 코드를 수행합니다. 아래 코드는 숫자 x가 0보다 크면 "양수입니다"라는 메시지를 출력하는 코드입니다.

 

x = 5
if x > 0:
    print("양수입니다")

 


3.2 if-else문

 

if-else문은 조건식이 참일 경우와 거짓일 경우 모두 처리할 수 있습니다. 아래 코드는 숫자 x가 0보다 크면 "양수입니다"라는 메시지를 출력하고, 0보다 작으면 "음수입니다"라는 메시지를 출력하는 코드입니다.

 

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

 


3.3 if-elif-else문

 

if-elif-else문은 여러 개의 조건식을 판단하여 각각 다른 코드 블록을 수행할 수 있습니다. 아래코드는 숫자 x가 0보다 크면 "양수입니다"라는 메시지를 출력하고, 0보다 작으면 "음수입니다"라는 메시지를 출력하고, 0이면 "0입니다"라는 메시지를 출력하는 코드입니다.

 

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

 



4. 조건문 연산자

4.1 조건문 in 연산자

 

"in" 연산자는 특정 값이 컬렉션 자료형(리스트, 튜플 등)에 포함되어 있는지 확인할 때 사용됩니다. 아래 코드는 fruits 리스트에서 "apple"이 포함되어 있는지 확인하는 코드입니다. "apple"이 리스트에 있다면 "apple is in the fruits list"라는 문자열을 출력하고 만약 없다면 "apple is not in the fruits list" 문자열을 출력합니다.

 

fruits = ["apple", "banana", "cherry"]

if "apple" in fruits:
    print("apple is in the fruits list")
else:
    print("apple is not in the fruits list")

 

"in" 연산자는 if-elif-else문에서도 사용이 가능합니다. 아래 코드는  numbers 리스트에 6, 7 값이 포함되어 있는지 확인하는 코드입니다. 만약 6, 7이 있다면 " _ is in the numbers list"라는 문자열을 출력하고 만약 없다면 "6 and 7 are not in the numbers list"라는 문자열을 출력합니다.

 

numbers = [1, 2, 3, 4, 5]

if 6 in numbers:
    print("6 is in the numbers list")
elif 7 in numbers:
    print("7 is in the numbers list")
else:
    print("6 and 7 are not in the numbers list")

 


4.2 조건문 and 연산자, or 연산자

4.2.1 and 연산자

 

"and" 연산자는 두 개의 조건이 모두 True일 때 True를 반환합니다. 만약 하나라도 False이면 False를 반환합니다. 아래 코드는 and 연산자를 이용한 예시 코드입니다. 첫 번째 조건은 a가 b보다 작고, b가 c보다 작은지 확인합니다. 두 조건이 모두 True이므로 True가 출력됩니다. 두 번째 조건은 a가 b보다 크고, b가 c보다 작은지 확인합니다. a가 b보다 작기 때문에 False가 출력됩니다.

 

>>> a = 10
>>> b = 20
>>> c = 30
>>> print(a < b and b < c)
True
>>> print(a > b and b < c)
False

 


4.2.2 or 연산자

 

"or" 연산자는 두 개의 조건 중 하나라도 True이면 True를 반환합니다. 두 개의 조건이 모두 False일 때에만 False를 반환합니다. 아래 코드는 or 연산자를 이용한 예시 코드입니다. 첫 번째 조건은 a가 b보다 작거나, b가 c보다 작은지 평가하는 과정입니다. a < b 조건이 True 이므로 True가 출력됩니다. 두 번째 조건은 a가 b보다 크거나 b가 c보다 작은지 평가하는 과정입니다. b < c 조건이 True이므로 True가 출력됩니다. 세 번째 조건은 a가 b보다 크거나 b가 c보다 큰지 평가하는 과정입니다.  모두 False 이므로 False이 출력됩니다.

 

>>> a = 10
>>> b = 20
>>> c = 30
>>> print(a < b or b < c)
True
>>> print(a > b or b < c)
True
>>> print(a > b or b > c)
False

 


4.2.3 and, or 연산자 사용

 

"and"와 "or" 연산자는 여러 개를 연결하여 사용할 수 있습니다. a가 b보다 작고 b가 c보다 작거나 a가 c보다 큰지 조건문을 이용해 확인합니다. 첫 번째 조건이 True이므로 "a is less than b and b is less than c or is greater than c"가 출력됩니다.

 

a = 10
b = 20
c = 30

if a < b and b < c or a > c:
    print("a is less than b and b is less than c or a is greater than c")
else:
    print("none of the conditions are met")

 

괄호를 사용하여 표현식을 그룹핑할 수 있습니다. 이는 연산자 우선 순위를 변경하거나 코드의 가독성을 높일 수 있습니다.

 

a = 10
b = 20
c = 30

if (a < b and b < c) or (a > c):
    print("a is less than b and b is less than c or a is greater than c")
else:
    print("none of the conditions are met")

 


5. 조건문 연습 문제

5.1  조건문 문제 1번

 

어떤 수가 양수인지 음수인지 판단하여, 양수일 경우 "양수입니다"라는 메시지를, 음수일 경우 "음수입니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

num = int(input("수를 입력하세요: "))

if num > 0:
    print("양수입니다")
else:
    print("음수입니다")

 


5.2  조건문 문제 2번

 

어떤 수가 0인지, 양수인지, 음수인지 판단하여, 0일 경우 "0입니다"라는 메시지를, 양수일 경우 "양수입니다"라는 메시지를, 음수일 경우 "음수입니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

num = int(input("수를 입력하세요: "))

if num > 0:
    print("양수입니다")
elif num < 0:
    print("음수입니다")
else:
    print("0입니다")

 


5.3  조건문 문제 3번

 

어떤 수가 짝수인지 홀수인지 판단하여, 짝수일 경우 "짝수입니다"라는 메시지를, 홀수일 경우 "홀수입니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

num = int(input("수를 입력하세요: "))

if num % 2 == 0:
    print("짝수입니다.")
else:
    print("홀수입니다.")

 


5.4  조건문 문제 4번

 

어떤 수가 3의 배수인지 판단하여, 3의 배수일 경우 "3의 배수입니다"라는 메시지를, 아닐 경우 "3의 배수가 아닙니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

n = int(input("수를 입력하세요: "))
if n % 3 == 0:
    print("3의 배수입니다.")
else:
    print("3의 배수가 아닙니다.")

 

 


5.5  조건문 문제 5번

 

어떤 수가 2의 배수이거나 3의 배수인지 판단하여, 2의 배수이거나 3의 배수일 경우 "2의 배수이거나 3의 배수입니다"라는메시지를, 아닐 경우 "2의 배수도 아니고, 3의 배수도 아닙니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

number = int(input("수를 입력하세요: "))

if number % 2 == 0 or number % 3 == 0:
    print("2의 배수이거나 3의 배수입니다")
else:
    print("2의 배수도 아니고, 3의 배수도 아닙니다")

 


5.6  조건문 문제 6번

 

어떤 수가 양수, 음수, 0인지 판단하여, 양수일 경우 "양수입니다", 음수일 경우 "음수입니다", 0일 경우 "0입니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

num = int(input("수를 입력하세요: "))
if num > 0:
    print("양수입니다")
elif num < 0:
    print("음수입니다")
else:
    print("0입니다")

 


5.7  조건문 문제 7번

 

어떤 수가 가장 큰 수인지 판단하여, 가장 큰 수일 경우 "가장 큰 수입니다"라는 메시지를, 아닐 경우 "가장 큰 수가 아닙니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

숫자1 = int(input("첫 번째 숫자를 입력하세요: "))
숫자2 = int(input("두 번째 숫자를 입력하세요: "))
숫자3 = int(input("세 번째 숫자를 입력하세요: "))

가장_큰_수 = max(숫자1, 숫자2, 숫자3)

if 숫자1 == 가장_큰_수:
    print("첫 번째 숫자는 가장 큰 수입니다.")
elif 숫자2 == 가장_큰_수:
    print("두 번째 숫자는 가장 큰 수입니다.")
else:
    print("세 번째 숫자는 가장 큰 수입니다.")

 


5.8  조건문 문제 8번

 

어떤 수가 가장 작은 수인지 판단하여, 가장 작은 수일 경우 "가장 작은 수입니다"라는 메시지를, 아닐 경우 "가장 작은 수가 아닙니다"라는 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

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

minimum = int(input("가장 작은 수를 입력하세요: "))

if number == minimum:
    print("가장 작은 수입니다.")
else:
    print("가장 작은 수가 아닙니다.")

 

5.9  조건문 문제 9번

 

어떤 수가 특정 수의 수일 경우 "홀수입니다"라는 메시지와 함께 수의 2배 + 1의 값을 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

def calculate_and_print(number):
    if number % 2 == 1:
        print("홀수입니다")
        print("2배 + 1의 값: ", 2 * number + 1)

input_number = int(input("수를 입력하세요: "))
calculate_and_print(input_number)

 


5.10  조건문 문제 10번

 

어떤 수가 가장 큰 수, 가장 작은 수, 짝수, 홀수, 0인지 판단하여 메시지를 출력하는 프로그램을 작성하세요.

 

더보기

##문제확인

num = int(input("수를 입력하세요: "))

# 가장 큰 수인지 판단
if num == max(num, 0):
    print("가장 큰 수입니다.")
else:
    print("가장 큰 수가 아닙니다.")

# 가장 작은 수인지 판단
if num == min(num, 0):
    print("가장 작은 수입니다.")
else:
    print("가장 작은 수가 아닙니다.")

# 짝수인지 판단
if num % 2 == 0:
    print("짝수입니다.")
else:
    print("홀수입니다.")

# 0인지 판단
if num == 0:
    print("0입니다.")

 


5.11 조건문 문제 11번

 

if문을 사용하여 학점 계산기를 만드세요.

 

A : 90 이상
B : 80 이상 ~ 90 미만
C : 70 이상 ~ 80 미만
D : 60 이상 ~ 70 미만
F : 60 미만

 

더보기

##문제확인

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학점입니다.")