Python 3.10.2
conda 24.9.0
JupyterLab 4.2.5
다른 언어에 비해 제어문의 종류가 많지 않다.
하지만 내용은 비슷하다.
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 (조건식) :
(조건이 참일때 수행되는 블록)
:(콜론) 으로 명령의 끝을 알린다.:(콜론)의 다음 줄 부터는 들여쓰기의 간격이 모두 일정해야 한다.하나의 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
# 짝수입니다.
하나의 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
여러 개의 조건에 따라 표현할 때 사용한다.
score=88
if score>=90:
print("A")
elif score>=80:
print("B")
elif score>=70:
print("C")
else:
print("F")
# ✅ 출력 결과
# B
앞선 중첩 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