본문 바로가기
파이썬/기초 학습

Day 6: 조건문 & 반복문 추가학습

by CBROJIN 2025. 8. 1.

1) 학습 요약표

개념 설명
조건문 조건에 따라 실행 코드 분기 (if/elif/else)
반복문 while, for로 반복 처리
반복 제어 break, continue로 반복 흐름 제어
논리 연산자 and, or, not 으로 복합 조건 표현
멤버십 연산자 in, not in 으로 포함 여부 확인
 

2) 이론 학습

1. 조건문 if / elif / else

조건문은 주어진 조건이 맞는지(참인지) 검사하고, 그에 따라 서로 다른 코드를 실행할 수 있게 합니다. 여러 경우 중 하나를 선택할 때 사용합니다.

score = int(input("점수를 입력하세요: "))

if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")
elif score >= 70:
    print("C 학점")
elif score >= 60:
    print("D 학점")
else:
    print("F 학점")
  • if 조건부터 차례로 확인하며 해당하는 조건이 있으면 그 코드만 실행하고 나머지는 건너뜁니다.
  • 숫자 비교에는 >=, <=, ==, != 등의 비교 연산자를 사용합니다.

2. 조건 판별 응용

파이썬에서는 다음과 같은 값은 자동으로 거짓(False)으로 취급됩니다: None, 0, "", [], {}

value = None

if value:
    print("참입니다")
else:
    print("거짓입니다")

if []:
    print("리스트가 있음")
else:
    print("빈 리스트입니다")
  • if문에서 값이 비어 있거나 없으면 자동으로 False로 간주됩니다.

3. while 반복문

while문은 조건이 참인 동안 계속 반복됩니다. 조건이 거짓이 되면 반복이 끝납니다.

count = 0
while count < 5:
    print("반복 중:", count)
    count += 1
  • count += 1count = count + 1과 같습니다.
  • 조건이 항상 참이면 무한 루프가 되므로 반드시 탈출 조건을 만들어야 합니다.

4. for 반복문 + 조건문 조합

for문은 리스트, 문자열, range 등 반복 가능한 객체의 항목을 하나씩 꺼내 반복합니다.

names = ["철수", "영희", "민수"]

for name in names:
    if name == "영희":
        print(f"{name}는 출석했습니다.")
    else:
        print(f"{name}는 결석했습니다.")
  • 리스트 내 이름을 하나씩 꺼내 조건에 따라 출력합니다.

5. 논리 연산자 and / or / not

  • and: 두 조건이 모두 참이면 참
  • or: 둘 중 하나라도 참이면 참
  • not: 참/거짓을 반대로 바꿈
id_input = input("ID 입력: ")
pw_input = input("비밀번호 입력: ")

if id_input == "admin" and pw_input == "1234":
    print("접속 성공")
else:
    print("접속 실패")
  • 두 조건이 모두 맞아야 접속 성공

6. in / not in

특정 요소가 리스트, 문자열, 튜플에 포함되어 있는지를 검사할 수 있습니다.

keywords = ["ping", "traceroute", "show"]

cmd = input("명령어 입력: ")

if cmd in keywords:
    print("지원하는 명령어입니다.")
else:
    print("알 수 없는 명령어입니다.")
  • in은 포함 여부 확인, not in은 포함되지 않았는지 확인

7. break / continue

  • break: 반복문을 즉시 종료합니다.
  • continue: 해당 반복을 건너뛰고 다음 반복으로 이동합니다.
# break 예시
while True:
    data = input("데이터 입력(q 입력시 종료): ")
    if data == "q":
        break
    print("입력된 데이터:", data)

# continue 예시
for i in range(1, 11):
    if i % 2 == 0:
        continue
    print("홀수:", i)
 

3) 종합 실습 과제

[실습1] 점수를 입력받아 학점을 판별하는 프로그램 작성

  • 사용자에게 0부터 100 사이의 점수를 입력받습니다.
  • 점수 구간에 따라 아래 기준으로 학점을 출력합니다.
    • 90점 이상: A 학점
    • 80점 이상: B 학점
    • 70점 이상: C 학점
    • 60점 이상: D 학점
    • 60점 미만: F 학점
  • 조건문 if ~ elif ~ else를 활용합니다.

 

[실습2] 로그인 시스템 만들기

  • ID와 비밀번호를 입력받습니다.
  • ID가 'admin'이고 비밀번호가 'cisco123'일 경우 "접속 성공"을 출력합니다.
  • 둘 중 하나라도 다르면 "접속 실패"를 출력합니다.
  • and 논리 연산자를 사용하여 조건을 구성합니다.

 

[실습3] 명령어 유효성 검사기

  • 허용된 명령어 리스트를 ['show', 'ping', 'exit']로 정의합니다.
  • 사용자로부터 명령어를 입력받습니다.
  • 입력된 명령어가 리스트에 존재하면 "지원하는 명령어입니다." 출력, 존재하지 않으면 "알 수 없는 명령어입니다." 출력합니다.
  • in 연산자를 사용하여 멤버십 검사를 수행합니다.

 

[실습4] 1~20까지 수 중 홀수만 출력

  • for 반복문과 range()를 사용하여 1부터 20까지 숫자를 생성합니다.
  • 숫자가 짝수인 경우 continue를 사용하여 출력하지 않습니다.
  • 결과적으로 홀수만 공백으로 구분하여 출력되도록 작성합니다.

 

[실습5] 반복 입력받아 짝수만 저장하는 필터 프로그램

  • while 반복문을 사용하여 사용자가 숫자를 계속 입력할 수 있게 합니다.
  • 사용자가 -1을 입력하면 입력을 종료합니다.
  • 입력된 수가 홀수일 경우 continue를 사용하여 건너뜁니다.
  • 짝수일 경우 리스트에 저장하고, 반복이 끝난 후 저장된 짝수 목록을 출력합니다.