BioPlayground

🧬
목록으로

Python 조건문과 함수

Python의 if/elif/else 조건문과 함수 정의(def)를 실제 예제로 배웁니다.

입문
|
7
|
검증 완료 (2026-07)
진행률0/7 (0%)

Python 조건문과 함수

이 토픽을 마치면

if/elif/else로 분기를 만들고, def로 함수를 정의해서 코드를 재사용할 수 있습니다.


조건문 — if, elif, else

프로그램은 "상황에 따라 다르게 행동"해야 합니다. 그것이 조건문입니다.

python
score = 85
if score >= 90:
print("A등급")
elif score >= 80:
print("B등급")
elif score >= 70:
print("C등급")
else:
print("재시험")
# 출력: B등급

위에서부터 순서대로 조건을 검사합니다. 첫 번째로 True인 블록을 실행하고 나머지는 건너뜁니다.

들여쓰기가 문법이다

python
# ✅ 올바름
if True:
print("실행됨")
# ❌ IndentationError
if True:
print("에러!")

Python은 중괄호 대신 **들여쓰기(보통 스페이스 4칸)**로 블록을 구분합니다. 들여쓰기가 맞지 않으면 문법 에러입니다. 탭과 스페이스를 섞으면 안 됩니다.


비교와 논리 연산자

python
# 비교 연산자
x = 10
print(x > 5) # True
print(x == 10) # True (같은가)
print(x != 10) # False (다른가)
print(x >= 10) # True (이상)
# 논리 연산자
age = 25
has_id = True
if age >= 18 and has_id:
print("입장 가능")
if age < 18 or not has_id:
print("입장 불가")
연산자의미예시
and둘 다 TrueA and B
or하나라도 TrueA or B
not반전not A

함수 — def

같은 코드를 여러 번 쓰는 대신, 함수로 묶어서 이름을 붙입니다.

python
def greet(name):
print(f"안녕하세요, {name}님!")
greet("김훈") # 안녕하세요, 김훈님!
greet("이수") # 안녕하세요, 이수님!

def 함수이름(매개변수): → 들여쓰기된 블록이 함수 본문. 함수는 호출할 때까지 실행되지 않습니다.

return — 결과 돌려주기

python
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
# return이 없으면 None을 반환
def say_hello():
print("hello")
x = say_hello() # "hello" 출력
print(x) # None

print()는 화면에 보여주는 것이고, return은 값을 돌려주는 것입니다. 전혀 다른 역할입니다.


기본값과 키워드 인자

python
def power(base, exponent=2):
return base ** exponent
print(power(3)) # 9 (exponent=2 기본값 사용)
print(power(3, 3)) # 27 (exponent=3으로 지정)
# 키워드 인자 — 순서 무관
print(power(exponent=4, base=2)) # 16

기본값이 있는 매개변수는 호출할 때 생략할 수 있습니다.


함수 안의 변수 — 스코프

python
x = 10 # 전역 변수
def foo():
x = 20 # 지역 변수 — 함수 안에서만 유효
print(x) # 20
foo()
print(x) # 10 — 전역 x는 변하지 않았다

함수 안에서 만든 변수는 함수가 끝나면 사라집니다. 함수 밖의 변수와 이름이 같아도 별개의 변수입니다. 이것을 **스코프(scope)**라고 합니다.


조건문 + 함수 = 로직

python
def classify_bmi(weight, height):
bmi = weight / (height ** 2)
if bmi < 18.5:
return "저체중"
elif bmi < 25:
return "정상"
elif bmi < 30:
return "과체중"
else:
return "비만"
print(classify_bmi(70, 1.75)) # 정상
print(classify_bmi(90, 1.70)) # 과체중

조건문으로 분기하고, 함수로 재사용 가능하게 만드는 것. 이 두 가지를 합치면 대부분의 프로그램 로직을 표현할 수 있습니다.