안녕하세요? mangoseed3434입니다.
이번 글에서는 파이썬에서 조건에 따라 다른 동작을 수행하거나, 특정 작업을 반복 실행할 때 사용하는 조건문과 반복문을 정리했습니다.
프로그램에서는 “어떤 조건이 만족되었는가?”를 판단한 뒤, 그 결과에 따라 동작을 달리해야 하는 상황이 발생합니다.
이때 사용하는 것이 조건문과 반복문입니다.
1. if문
① if문이란?
if문은 조건이 참(True)인지 거짓(False)인지 판단한 뒤, 그 결과에 따라 코드를 실행하는 문장입니다.
예를 들어,
'돈이 있으면 멜론을 먹을 수 있고, 돈이 없으면 멜론을 먹지 못한다.'
위 상황을 python환경에서 if문으로 표현할 수 있습니다.
money = True
if money:
print("멜론을 먹을 수 있습니다.")
else:
print("멜론을 먹을 수 없습니다.")
위 코드에서 money에 True라는 불을 대입했으니, money는 참입니다.
따라서 위 if문을 수행하면 '멜론을 먹을 수 있습니다.'가 출력됩니다.

② if문의 기본 구조
이러한 if문을 이용한 조건문의 기본 구조는 다음과 같이 표현할 수 있습니다.
if 조건문:
수행할 문장1
수행할 문장2
...
else:
수행할 문장1
수행할 문장2
...
조건문을 테스트해서 True이면 if 조건문: 바로 다음의 문장들을 수행합니다.
조건문을 테스트해서 False이면 else: 바로 다음의 문장들을 수행합니다.
else는 선택사항이며, 반드시 작성할 필요는 없습니다.
그리고 if문은 else없이 독립적으로 사용할 수는 없습니다.
파이썬에서 들여쓰기는 문법의 일부입니다.

들여쓰기를 하지 않으면 오류 발생합니다.
들여쓰기 깊이는 반드시 동일해야 합니다.
최근에는 스페이스 4번으로 들여쓰기 사용을 권장하고 있습니다.
탭과 스페이스를 혼용하면 오류의 원인이 될 수 있습니다.
또한, if문을 작성할 때 if 조건문 뒤에는 반드시 콜론(:)을 붙여야 합니다.
이후에 기술할 while문이나 for문에서도 역시 조건문 뒤에 콜론(:)을 붙여야 합니다.
③ 조건문이란?
조건문이란 True와 False를 판단하는 문장입니다.
money = True
if money:
위 코드에서, money는 true이기 때문에 조건문이 true가 되어 if문 다음 문장을 수행합니다.
④ 비교 연산자
조건문에서는 비교 연산자를 사용할 수 있습니다.
비교 연산자에는 6개가 있습니다.
| < | 작다 |
| > | 크다 |
| == | 같다 |
| != | 같지 않다 |
| >= | 이상 |
| <= | 이하 |

이러한 비교 연산자를 이용해 조건문의 조건을 구체적으로 작성할 수 있습니다.
'지금 가지고 있는 돈은 2000원이다.'
'만약 돈을 5000원 이상을 가지고 있으면 멜론을 먹을 수 있고, 그렇지 않으면 멜론을 사먹을 수 없다.'
위 상황을 python환경에서 if문으로 표현해보겠습니다.
money = 2000
if money >= 5000 :
print("멜론을 사 먹을 수 있습니다.")
else :
print("멜론을 사 먹을 수 없습니다.")

money를 2000만 가지고 있고, money >= 5000에 조건문에 대해 False입니다.
따라서, else문에 할당된 문장이 출력된 것을 볼 수 있습니다.
⑤ 논리 연산자
조건을 판단하기 위해서는 and, or, not 논리 연산자를 사용할 수 있습니다.
x or y : x 또는 y
x and y : x 그리고 y
not x : x가 거짓이면 참이다
연산자의미
| x or y | x 또는 y |
| x and y | x 그리고 y |
| not x | x가 거짓이면 참이다. |
'돈이 5000원 이상이 있거나(or) 카드를 가지고 있다면 멜론을 사 먹을 수 있고,
그렇지 않으면 멜론을 사 먹을 수 없다.'

money가 2000이지만 card가 True입니다.
따라서, 3번쨰 줄의 'if money >= 5000 or card' 조건문이 True가 됩니다.
그래서 if문에 속하는 '멜론을 사 먹을 수 있습니다.'가 출력됩니다.
⑥ in / not in
'~안에'라는 뜻을 가진 in을 이용한 조건문을 작성할 수 있습니다.
'리스트 안에 melon이 있는가?'
'리스트 안에 melon이 없는가?'

첫 번째는 리스트 안에 melon이 있기 때문에 True를 출력합니다.
하지만, 두 번째 not in은 리스트 안에 melon이 없는가?를 의미하기 때문에 False를 출력합니다.
in과 not in은 각각 리스트, 튜플, 문자열에 모두 적용할 수 있습니다.
'만약, 주머니에 돈이 있으면 멜론을 사 먹을 수 있고, 없으면 멜론을 사 먹을 수 없다.'

pen, money, key로 구성된 pocket라는 리스트에 money가 있습니다.
그러므로 2번째 줄의 'if 'money' in pocket'이 True가 됩니다.
그래서 True에 속하는 if문이 수행됩니다.
⑦ pass
또한, pass를 입력해 조건문의 참, 거짓에 따라 아무런 일도 일어나지 않도록 설정할 수 있습니다.
'주머니에 돈이 있으면 가만히 있고, 주머니에 돈이 없으면 멜론을 사 먹을 수 없다.'

리스트 pocket에 money가 있어서 if문이 수행됩니다.
하지만 if 문에 pass가 수행되고 아무런 결과가 출력되지 않는 것을 볼 수 있습니다.
⑧ elif (다중 조건)
if와 else만으로도 다양한 조건을 판단하는 조건문을 만들 수 있습니다.
elif를 이용하면 조금 더 간편하게 다중 조건을 판단할 수 있습니다.
'''주머니에 돈이 있으면 멜론을 사 먹고,
주머니에 돈은 없지만 카드가 있으면 멜론을 사 먹고,
돈도 없고 카드도 없으면 멜론을 사 먹을 수 없다.'''

elif는 이전 조건문이 거짓일 때 수행됩니다.
그리고 elif는 개수에 제한 없이 사용할 수 있습니다.
if, elif, else를 모두 사용해 조건문을 작성할 때 기본구조는 다음과 같습니다.
if 조건문 :
수행할 문장1
수행할 문장2
...
elif 조건문 :
수행할 문장1
수행할 문장2
...
elif 조건문 :
수행할 문장1
수행할 문장2
...
else :
수행할 문장1
수행할 문장2
⑨ 조건부 표현식
조건부 표현식은 가독성에 유리하고 한 줄로 작성할 수 있는 활용성이 있습니다.
if score >= 90 :
message = 'You Win!"
else :
message = "You Lose"
위 코딩을 조건부 표현식을 이용해 조금 더 간단히 표현할 수 있습니다.
message = "You Win!" if score >= 90 else "You Lose"
2. while문
① while문이란?
while문은 조건이 참인 동안 반복 실행합니다.
어떤 문장을 반복해서 수행해야 할 경우에는 while문을 사용합니다.
그래서 while문을 '반복문'이라고 하기도 합니다.
② while문의 기본 구조
while문의 기본 구조는 아래와 같습니다.
while 조건문 :
수행할 문장1
수행할 문장2
수행할 문장3
...
while문은 조건문이 참인 동안 while문에 속한 문장들이 반복해서 수행됩니다.
'미야비는 멜론 10개를 먹으면 기뻐합니다.'
위 구문을 while문으로 구현해보겠습니다.

위 코드에서 while문의 조건문은 melontake < 10입니다.
즉, melontake가 10보다 작은 동안 while문에 포함된 문장들을 계속 수행합니다.
melontake = melontake + 1은 melontake값이 계속 1씩 증가한다는 것을 의미합니다.
그리고 멜론은 먹은 횟수를 출력하고 melontake가 10이 되면 '미야비는 기뻐합니다.'라는 문장을 출력합니다.
그리고 melontake < 10 조건문이 거짓이 되므로 while문을 빠저나오게 됩니다.
여기서 melontake = melontake + 1은 프로그래밍을 할 때 주로 사용되는 기법입니다.
melontake 값을 1씩 증가시킬 목적으로 사용하며, melontake += 1처럼 작성해도 됩니다
while문을 이용해 여러가지 선택지 중 하나를 선택해 입력받는 예제를 만들 수 있습니다.
prompt = '''
1. Name
2. Age
3. Height
4. Quit
Enter number : '''
number = 0
while number != 4 :
print(prompt)
number = int(inpput())
.
number 변수에 0을 대입합니다.
변수를 먼저 설정하지 않으면 다음에 나올 while문의 조건문인 number != 4에서 변수가 존재하지 않는다는 오류가 발생합니다.
number = int(input())는 숫자 입력을 받아들이는 구문입니다.

while문을 보면 number가 4가 아닌 동안 prompt를 출력하고 번호를 입력받습니다.
4를 입력하지 않는다면 계속해서 prompt를 출력합니다.
③ break / continue
while문은 조건문이 Ture인 동안 계속 while문 안의 내용을 반복적으로 수행합니다.
강제로 while 문을 빠져나갈수도 있습니다.
예를 들어 멜론 자판기를 생각해보겠습니다.
자판기 안에 멜론이 충분히 있을 때 돈을 넣으면 멜론이 나옵니다.
하지만 항상 멜론이 얼마나 남았는지 검사해야 자판기를 제대로 작동시킬 수 있습니다.
만약 멜론이 떨어졌다면 판매를 중단하고 '재고 소진' 문구를 소비자에게 보여줘야합니다.
이렇게 멜론 판매를 강제로 멈추게 하는 것이 break문입니다.
melon = 10
while True :
money = int(input("돈을 넣어주세요: "))
if money == 500 :
print("멜론을 줍니다.")
melon = melon - 1
elif money > 500 :
print("거스름돈 %d과 멜론을 줍니다." %(money-500))
melon = melon -1
else :
print("돈을 다시 돌려주고 멜론을 주지 않습니다.")
print("남은 멜론의 양은 %d개입니다." %melon)
if melon == 0 :
print("멜론이 전부 판매되었습니다. 판매를 중지합니다.")
break

while문 안의 문장을 수행할 때 입력 조건을 검사해서 조건에 맞지 않으면 while문을 빠져 나갑니다.
하지만, 조건을 만족하지 않아도 while문을 빠져나가지 않고 while문의 맨 처음으로 다시 돌아가게 할 수 있습니다.
이 경우, continue문을 사용해야 합니다.
a = 0
while a < 10 :
a = a + 1
if a % 2 == 0 : continue
print(a)
1 ~ 10 사이의 숫자 중 홀수만 출력하는 구문입니다.
a가 10보다 작은 동안 a는 1만큼씩 증가합니다.
a%2==0이 True가 되는 경우는 a가 짝수 일 대 입니다.
즉, a가 짝수이면 continue문을 수행합니다.
이 continue문은 while 문의 맨 처음인 조건문(a<10)으로 돌아가게 하는 명령어입니다.
따라서, 위 예시에서 a가 짝수이면 print(a)문장은 수행되지 않습니다.
3. for문
① for문이란?
for문은 while문과 유사한 반복문입니다.
② for문의 기본 구조
for문의 기본 구조는 다음과 같습니다.
for 변수 in 리스트 or 튜플 or 문자열 :
수행할 문장1
수행할 문장2
...
리스트, 튜플, 문자열을 구성하는 첫 번째 요수분터 마지막 요소까지 차례로 변수에 대입합니다.
그리고 '수행할 문장1'과 수행할 문장2'가 수행됩니다.
test_list = ['rock', 'scissor', 'paper']
for i in test_list :
print(i)

test_list의 첫 번째 요소인 rock부터 변수 i에 대입된 후 print(i)을 수행합니다.
이후에 두 번째 요소인 scissor가 i 변수에 대입되고 print(i)를 수행하고
마지막 요소인 paper까지 i변수에 대입되어 print(i)를 수행합니다.
'''
총 5명의 후보가 시험을 응시했는데,
점수가 80점 이상이면 합격이고
그렇지 않으면 불합격이다.
'''

각 후보에게 번호를 부여하고자 number 변수를 사용했습니다.
점수 리스트 test에서 차례로 점수를 꺼내어 mark라는 변수에 대입하고,
for 문 안의 문장들을 수행합니다.
for문이 한 번씩 수행될 때마다 number는 1씩 증가합니다.
for문에도 continue문을 사용할 수 있습니다.
for 문 안의 문장을 수행하다가 continue문을 만나면 for문의 처음으로 돌아가게 됩니다.
test = [90, 75, 79, 100, 85]
number = 0
for mark in test :
number = number + 1
if mark < 80 :
continue
print("%d번 후보는 합격입니다." %number)
위 경우 점수가 80점 미만인 후보는 mark < 80이 True가 되어 continue문을 수행합니다.
그래서 print문을 수행하지 않고 for문의 처음으로 되돌아가게 됩니다.
③ range 함수
for문은 숫자 리스트를 자동으로 만들어주는 range함수와 주로 함께 사용합니다.

range(10)은 0이상 10미만의 숫자를 출력합니다.
range( ) 함수의 시작 숫자와 끝 숫자를 지정하려면 range(시작 숫자, 끝 숫자)형태를 사용하며, 끝 숫자는 포함하지 않습니다.
add = 0
for i in range(1, 11) :
add = add + 1
range함수와 for문을 이용해 1부터 10까지 더할 수 있습니다.

range(1, 11)를 이용해 숫자 1부터 10까지의 숫자를 i변수에 하나씩 차례로 대입합니다.
그리고 add = add + i문장을 반복적으로 수행해 add는 최종적으로 55가 됩니다.
④ 리스트 컴프리헨션 (List Comprehension)
리스트 컴프리헨션은 리스트 안에 for문을 포함하는 문장입니다.
리스트 컴프리헨션을 사용하면 좀 더 편리하고 직관적인 프로그램을 만들 수 있습니다.
리스트 컴프리헨션의 기본구조는 다음과 같습니다.
[표현식 for 항목 in 반복가능개체 if 조건문]
4. 마무리
if / elif / else : 조건 분기
while : 조건 기반 반복
for : 반복 가능한 객체 순회
break / continue : 조건문 내 흐름 제어
읽어주셔서 감사합니다.
'Pyhon 입문' 카테고리의 다른 글
| (Python 입문 05편) input함수, 사용자 입출력, 파일 읽고 쓰기 (0) | 2026.02.10 |
|---|---|
| (Python 입문 04편) def 함수, return문, 매개변수, 인수, lambda (0) | 2026.02.09 |
| (Python 입문 02편) Data Type : 리스트, 튜플, 딕셔너리, 집합, 불 (0) | 2026.01.12 |
| (Pyhon 입문 01편) 인덱싱, 슬라이싱, 문자열 포매팅, f 문자열 포매팅 (0) | 2026.01.11 |