[파이썬 핵심 기초 다지기] 제어문과 조건문

julian·2025년 2월 15일

python

목록 보기
5/74
post-thumbnail

📌 사용 환경

Python 3.10.2
conda 24.9.0
JupyterLab 4.2.5


  • 조건문: if, if~else, if~elif
  • 반복문: while, for
  • 흐름 제어: break, continue

다른 언어에 비해 제어문의 종류가 많지 않다.
하지만 내용은 비슷하다.
C, C#, Java 등은 중괄호로 열고 닫지만(if(조건식){ };), 파이썬은 그렇지 않다.
data=[1,2,3,...] 이렇게 있을때, 그 동안 str, list, tuple, dictionary 등으로 자료를 모아봤다.

그리고 이제 원하는 데이터를 추출해야 한다.

원하는 데이터에는 조건이 있을 것인데 이때 조건문을 사용한다.
나이가 30살 이상인 사람만 뽑아야 한다면, if 나이 >= 30: 와 같다.

그리고 이후 모듈 단위로 데이터를 던지는 방법까지 배우면 끝이다.

먼저 나타나는 코드가 먼저 실행되는 순차적인 순서에서
이 순차적 실행 구조를 이용한 변수의 덧셈은 다음과 같다.

num=100  
num=num+100  #200  
num=num+100  #300  

이런 구조에서 흐름을 바꾸는 것이 제어문이다.

그렇다면 반복문은 언제쓰일까?
학생이 1번부터 300번이 있는데 105번을 찾고자 한다면, 반복문을 돌리면서 1부터 순차적으로 찾는다. 그리고 과정 중에 105번을 찾았다면 더이상 반복을 돌 필요 없다.

이럴때 흐름제어(break, continue)를 쓴다.

제어문 문법의 특징은 다음과 같다.

if (조건식) :
    (조건이 참일때 수행되는 블록)
  • 첫 명령어는 들여쓰기 없이 시작해야 한다.
  • 조건문, 반복문 등의 문법을 사용할 때는 :(콜론) 으로 명령의 끝을 알린다.
  • :(콜론)의 다음 줄 부터는 들여쓰기의 간격이 모두 일정해야 한다.

1. 조건문

1.1. if문

하나의 if문이 있는 경우는 논리형(boolean) 표현식 결과에 따라(True or False) 하나 이상의 if문이 올 수 있다.

  • 구조

  • 코드

x=15
if x>10:
    print("10보다 큰 수 입니다.")

print("흐름 파악")

# ✅ 출력 결과
# 10보다 큰 수 입니다.
# 흐름 파악
# 만약 조건식에 맞지 않다면 건너뛰고 다시 순차적으로 진행된다.
x=5
if x>10:
    print("10보다 큰 수 입니다.")
print("흐름 파악")

y=20
if y>10 and y<30:
    y += 200
    print(y)

# 중첩 if 문
# 그런데 이렇게 `if`문을 따로 따로 사용 하지 않고 `if~else` 문이 존재한다.
num=60
if num%2 == 0:
    print("짝수입니다.")
if num%2 != 0:
    print("홀수입니다.")

# ✅ 출력 결과
# 흐름 파악
# 220
# 짝수입니다.

1.2. if~else 문

하나의 if문에 선택적으로 else문을 쓸 수 있다.
이는 조건이 참일 때와 거짓일 때, 다른 코드를 실행하려고 하는 경우 사용되며, else는 if문의 boolean 결과가 false 일때 실행된다.

num=100

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

if num > 0:
    num += 100
    print("양수 %d" %(num))
else:
    num *= 200
    print("음수 %d" %(num))
    
✅ 출력 결과
# 짝수입니다.
# 양수 200

1.3. if~elif 문

여러 개의 조건에 따라 표현할 때 사용한다.

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

# ✅ 출력 결과
# B

1.4. 중첩(다중) if문

앞선 중첩 if문을 좀 더 보면 다음과 같다.
중첩 if문은 말 그대로 if문을 중첩해서 사용하는 문법이다.
물론 if문 조건문에 and를 사용해도 상관은 없다.

성적에 따른 학점이 주어질 때를 예시로 하면 다음과 같다.

score2=84
grade=None

if score2>=90:
    if score2>=97:
        grade="A+"
    elif score2<96 and score2>=94:
        grade="A0"
    elif score2<=93:
        grade="A-"
elif score2>=80:
    if score2>=87:
        grade="B+"
    elif score2<86 and score2>=84:
        grade="B0"
    elif score2<=83:
        grade="B-"
elif score2>=70:
    if score2>=77:
        grade="C+"
    elif score2<76 and score2>=74:
        grade="C0"
    elif score2<=73:
        grade="C-"
elif score2<70:
    print("재수강")

print("학점:", score, "\t", grade)

# ✅ 출력 결과
# 학점: 88 	 B0

💪 객관식 퀴즈

Q1. 코드의 출력 결과를 고르시오.

x = 20
y = 10

if x > y:
    print("x는 y보다 크다")
elif x == y:
    print("x는 y와 같다")
else:
    print("x는 y보다 작다")

A) x는 y보다 크다
B) x는 y와 같다
C) x는 y보다 작다
D) 오류가 발생한다

A1. A

Q2. 코드의 출력 결과를 고르시오.

score = 72

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "F"

print("학점:", grade)

A) 학점: A
B) 학점: B
C) 학점: C
D) 학점: F

A2. C

Q3. 코드에서 if문을 잘못 사용한 부분은 무엇인가?

x = 15
y = 10

if x > y:
    print("x는 y보다 크다")
    else:
    print("x는 y보다 작다")

A) else가 들여쓰기가 잘못되었다.
B) if 문에서 조건식이 잘못되었다.
C) else 뒤에는 조건식을 써야 한다.
D) else 문은 필요 없다.

A3. A

Q4. 코드에서 "짝수입니다."를 출력하기 위해 빈칸에 들어가야 하는 것으로 옳은 것은?

num = 20

if ________:
    print("짝수입니다.")
else:
    print("홀수입니다.")

A) num % 2 == 0
B) num / 2 == 0
C) num // 2 == 0
D) num * 2 == 0

A4. A

profile
AI Model Developer

0개의 댓글