조건문이란?

어떤 조건이 참이면 코드를 실행하고, 거짓이면 특정 코드블럭을 실행한다. 라는 구조를 가진 문장이다.

 

파이썬에서의 조건문은 항상

조건식 → 판단(True / False) → 실행 여부 결정

이 흐름으로 동작한다.


1. if / elif / else 기본 구조

if 조건:
    # 조건이 참일 때 실행될 코드
elif 다른조건:
    # 다른 조건이 참일 때 실행될 코드
else:
    # 위의 조건이 모두 거짓일 때 실행될 코드

 

수도코드로 보기

만약 점수가 90 이상이면
    "A"
아니면 점수가 80 이상이면
    "B"
아니면
    "C"
score = 85

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

 

실행 순서 (Line by Line)

1. score = 85
2. score >= 90 → False
3. score >= 80 → True
4. "B" 출력
5. 아래 else는 보지도 않고 종료
#중요한 점: elif는 위 조건이 False일 때만 검사된다

2. 비교 연산자 & 논리 연산자

2-1) 비교연산자

조건식에서, 조건을 판단하기 위해서 비교 연산자를 자주 사용합니다.

연산자 의미
== 같다
!= 다르다
> 크다
< 작다
>= 크거나 같다
<= 작거나 같다
age = 20
print(age >= 19)   # True

2-2) 논리 연산자

조건을 결합할 때 논리연산자를 사용하기도 한다.

연산자 의미
and 둘 다 True
or 하나라도 True
not 반대

⭐파이썬의 논리 연산자는 True / False를 반환하지 않고 마지막으로 평가된 “값 자체”를 반환한다. ⭐

  • A and B
    • A가 True → B 반환  
    • A가 False → A 반환
  • A or B
    • A가 True → A 반환
    • A가 False → B 반환

 

age = 21
is_student = True

if age >= 20 and is_student: # 나이가 20세 이상이고, is_student가 참일때
    print("할인 가능")

3. pass 구문의 개념

IF구문이 참이여도 해당 코드블럭에서 아무런 행동을 하지 않고 넘긴다 를 의미한다.

if score >= 60:
    pass

조건을 만들었지만, 아직 실행할 코드가 없을때 사용된다.


 

4. in / not in 개념

개념

  • in: 포함되어 있는가
  • not in: 포함되어 있지 않은가

수도코드로 보기

만약 "a"가 문자열 안에 있으면
    출력
text = "apple"

if "a" in text:
    print("a가 포함됨")

실행 순서 (Line by Line)

1. "a" in aplle → True
2. if 실행

 

5. 삼항 연산자 (조건부 표현식)

값1 if 조건 else 값2

한 줄로 조건을 처리할 때 사용한다.

 

수도코드로 보기

만약 점수가 60 이상이면 "합격"
아니면 "불합격"

 

score = 70
result = "합격" if score >= 60 else "불합격"
print(result)

실행 순서 (Line by Line)

1. score >= 60 평가
2. True → "합격" 선택
3. result에 저장
4. 출력

만약 읽기 어렵다면 if 구문을 사용하자.

삼항 연산자는 단순한 경우에만 사용하자


6. 중첩 if문

if 안에 또 if가 있는 구조다.

 

수도코드로 보기

만약 점수가 60 이상이면
    만약 점수가 90 이상이면
        "A"
    아니면
        "B"
아니면
    "불합격"
score = 85

if score >= 60:
    if score >= 90:
        print("A")
    else:
        print("B")
else:
    print("불합격")

 

실행 순서 (Line by Line)

1. score >= 60 → True
2. 안쪽 if로 진입
3. score >= 90 → False
4. 안쪽 else 실행 → "B"

7. 최종 정리

조건문에서 꼭 가져가야 할 핵심!

  • 조건문은 True / False 판단 결과로 실행 여부를 결정한다
  • if는 시작, elif는 추가 조건, else는 나머지 처리
  • 비교 연산자는 조건을 만들고, 논리 연산자는 조건을 묶는다
  • pass는 “일단 비워두기”
  • in / not in은 포함 여부 확인
  • 삼항 연산자는 한 줄 조건 처리
  • 중첩 if는 가능하지만 복잡해지면 피하는 게 좋다

반복문이란?

코드블록을 일정 규칙에 따라 반복시키는 문법이다.

 

같은 코드를 여러 번 실행해야 할 때 사용하며, 가독성과 유지보수성을 크게올린다.

 


1. 반복문의 종류

파이썬에서 가장 많이 사용하는 반복문은 다음 두 가지이다.

1. for 문

• 반복 횟수가 명확한 경우

• 컬렉션(리스트, 문자열 등)을 순회할 때

for 변수 in 반복가능한_객체:
    실행할 코드


2. while 문

• 반복 종료 조건이 중요한 경우

• 언제 끝날지 명확하지 않은 반복에 사용

while 조건:
    실행할 코드

 

 

이 두 반복문은 목적과 사용 상황이 다르며, 각각의 특성을 이해하는 것이 중요하다.


3. for 문의 기본 구조와 활용

for 변수 in 반복가능한_객체:
    실행할 코드

이때의 변수는 각 반 마다 현재 값을 가지는 변수입니다. (보통은 +1)

for 문은 정해진 대상의 요소를 하나씩 꺼내며 반복한다.

 

3-1 간단한 예시

리스트 순회

리스트에 순서대로 접근해. 첫 번째 요소부터 마지막 요소까지 코드블럭 실행

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

for num in numbers:
    print(num, end = " ")

 

 

문자열 순회

문자열의 각 문자를 순서대로 접근해 하나씩 처리

for letter in "hello":
    print(letter, end = " ")

 

 

range 함수

range 함수는 연속된 숫자를 만들어주는 함수로, 주로 반복 횟수를 지정할 때 사용한다.

for i in range(5):
    print(i, end = " ")

 

⭐range(start, end, step) 형태를 가지고 있음⭐

• start: 시작 값을 나타낸다 (생략 가능)
• stop: 끝 값을 나타낸다. (지정 필수) 단, 실제로 생성되는 마지막 숫자는 이 값보다 작다.
• step: 각 숫자 사이의 간격. (생략 가능)


4. while 문의 기본 구조와 활용

while 조건:
    실행할 코드

조건이 참인 동안 계속 반복되며  조건이 거짓이 되는 순간 반복이 종료된다.

 

4-1 간단한 예시

i = 1
while i <= 5:
    print(i)
    i += 1

결과

 

4-2) 조건 기반 반복

while 문은 반복 횟수가 명확하지 않고, 어떤 조건이 참인 동안 반복한다.

때문에 특정 조건이 만족될 때까지 계속해서 작업을 수행하는 데 유용하다.

count = 0

while count < 3:
    print(count)
    count += 1

 

변수가 3보다 작으면 반복한다

조건: count < 3 일때 반복

user_input = ""
while user_input != "quit":
    user_input = input("명령을 입력하세요 (quit를 입력하면 종료): ")
    print("입력하신 명령:", user_input)

 

사용자에게 계속 입력을 받다가 "quit"를 입력하면 반복을 종료하는 방식

조건 user_input != "quit"일때 반복


5. 반복문 제어문 break, continue

반복문에 조건을 설정하는 법 이외에도 반복문의 흐름을 제어하기 위해서 제어문을 사용하기도 한다.

대표적으로 break와 continue 키워드가 있다.

5-1. break

현재 반목문을 즉시 종료한다. 반복 조건이 참이더라도 break를 만다는 순간 바로 반복문을 빠져나온다.

for i in range(5):
    if i == 3:
        break
    print(i)

 

반복문의 조건을 만족하고 있더라도 i가 3일때 반목문을 빠져나감.

 

5-2. continue

현재 반복 순회를 건너 뛰고 다음 반복으로 넘어간다.

for i in range(5):
    if i == 2:
        continue
    print(i)

 

i가 2일때 해당 반복 순회는 넘어가고 바로 다음순회를 시행(반목문 조건을 만족하지 않게 될때까지 시행)


6. 반복문 else 구조

파이썬의 반복문에는 특이하게 else 절이 존재하며 반목문이 정상적으로 종료될때 else 절을 시행한다.

 

핵심 규칙

  • break 없이 반복문이 끝나면 → else 실행
  • break가 한 번이라도 실행되면 → else 실행 안 됨
  • continue는 영향 없음

else가 실행되는 경우

for i in range(3):
    if i == 1:
        continue
    print(i)
else:
    print("끝")

 

실행 순서

1. i = 0 출력
2. i = 1  → continue  → 반복문 넘어감
3. i = 2 출력

4. 반복 정상 종료

5. else 실행

 

else가 실행되지 않는 경우

for i in range(5):
    if i == 3:
        break
else:
    print("완료")

실행순서

1. i = 0
2. i = 1
3. i = 2
4. i = 3 → break

5. 반복 강제 종료 → else 스킵


7. 중첩 반복문

중첩 반복문은 반복문 안에 또 다른 반복문이 들어 있는 구조이다.

바깥 반복문이 한 번 실행될 때마다 안쪽 반복문은 전체를 다시 실행한다.

for i in range(2):
    for j in range(3):
        print(i, j)

 

실행 순서 (Line by Line)

1. i = 0
2. j = 0, 1, 2 순서대로 실행
3. i = 1
4. 다시 j = 0, 1, 2 실행
5. 모든 조합이 끝나면 종료

8. 최종 정리

 

반복문에서 꼭 가져가야 할 핵심!

  • 반복문은 동일한 작업을 여러 번 실행하기 위한 제어문이다.
  • for 문은 반복 대상이 명확할 때 사용한다.
  • while 문은 조건 중심의 반복에 적합하다.
  • break는 반복을 즉시 종료하고, continue는 현재 반복을 건너뛴다.
  • 반복문에 붙은 else는 break 없이 반복이 정상적으로 끝났을 때만 실행된다.
  • 중첩 반복문은 반복 안에서 또 다른 반복을 수행하는 구조이다.

추가공부

컴프리헨션

반복문과 조건문을 사용해 컬렉션(list, dict, set 등)을 간결하게 생성하는 문법

[표현식 for 변수 in 반복가능객체]

 

수도코드

빈 리스트 생성
반복 시작
    값을 가공
    리스트에 추가
반복 종료

 

실제코드

result = []
for x in range(5):
    result.append(x * 2)
print(result)

 

실행 순서 (Line by Line 개념)

1. range(5) 생성
2. 첫 번째 값 x = 0
3. 표현식 x * 2 계산 → 0
4. 리스트에 추가
5. 다음 값으로 반복
6. 반복 종료 시 리스트 완성

 

 

조건식이 포함된 경우

수도코드

빈 리스트 생성
x를 0부터 9까지 반복
    만약 x가 짝수라면
        리스트에 추가

 

[x for x in range(10) if x % 2 == 0]

 

중첩형태의 컴프리헨션

[[i for i in range(2)] for j in range(3)]

 

해석 원칙 (매우 중요)

• 왼쪽에 있는 for가 바깥 반복문

• 오른쪽에 있는 for가 안쪽 반복문

• 변수 이름(i, j)은 중요하지 않다

 

몇가지 팁!

중첩 조건문, 중첩 반복문이 너무 어려렵다....

수도코드와 실행순서를 적어두고 문제를 풀어보자.

 

while문은 반드시 탈출 조건을 먼저 생각하고 풀자

while문은 무한루프하기 쉬운 반복문이다. 때문에 “이 조건이 언젠가는 false가 되는가?”를 항상 생각해야 한다.

 

다양한 문제들을 접하고 풀어보자

조건문과 반복문은 일종의 흐름 제어이기 암기를 한다고 잘 할수 있게 될수는 없다.

때문에 다양한 문제를 풀고 유형에 익숙해지며, 자연스럽게 익히는것이 가낭 효과적이다.

 

 

 

 

 

+ Recent posts