1) 학습 요약표
학습 내용 | 설명 |
조건문 | if, elif, else, 중첩 if 문으로 분기 처리 |
반복문 | for (range 활용), while (break, continue) 반복 처리 |
사용자 입력 | input()으로 입력, strip()으로 공백 제거, isdigit()으로 숫자 검증 |
예외 처리 | try-except를 사용해 입력 오류 처리 |
형변환 | int(), float(), str()로 타입 변환 |
문자열 포맷팅 | f-string, .format() 활용 출력 |
range() | 반복 횟수 제어 및 인덱스 기반 순회 |
2) 이론 설명
(1) 조건문 (if, elif, else)
조건문은 프로그램의 흐름을 특정 조건에 따라 분기시키는 구조입니다.
동작 원리:
- 조건식이 True인 경우 해당 블록 실행, False면 다음 분기 또는 종료.
- elif는 여러 조건을 순차적으로 검사할 때 사용.
- else는 모든 조건이 거짓일 때 실행.
예제 코드:
# 장비 상태 확인 예제
status = "up"
if status == "up":
print("장비가 정상 동작 중입니다.")
elif status == "down":
print("장비가 다운되었습니다. 점검이 필요합니다.")
else:
print("장비 상태를 확인할 수 없습니다.")
줄 단위 설명:
- status 변수에 장비 상태 문자열 저장
- if로 상태가 up인지 확인 후 메시지 출력
- 상태가 down일 경우 elif 블록 실행
- 모든 조건이 해당되지 않으면 else 블록 실행
(2) 반복문 (for, while)
반복문은 동일한 작업을 여러 번 수행할 때 사용합니다.
for문 (range 사용):
- range(start, stop, step)으로 반복 횟수 제어.
- 주로 리스트 순회, 숫자 범위 반복에 사용.
# 1~5까지 반복 출력
for i in range(1, 6):
print(f"장비 {i}번 점검 중...")
while문 (조건 기반):
- 조건이 True일 때 반복.
- break로 루프 종료, continue로 다음 반복으로 건너뜀.
# 패킷 수신 시뮬레이션
packet = 0
while packet < 3:
packet += 1
if packet == 2:
continue # 2번째 패킷은 건너뛰기
print(f"패킷 {packet} 수신 완료")
(3) 사용자 입력 처리
기능:
- input()으로 입력받고 strip()으로 공백 제거.
- 숫자인지 확인할 때 isdigit() 사용.
- 잘못된 입력은 try-except로 예외 처리.
예제 코드:
# 사용자에게 장비 수 입력받기
try:
count = input("장비 개수를 입력하세요: ").strip()
if not count.isdigit():
raise ValueError("숫자가 아닙니다.")
count = int(count)
print(f"총 {count}대의 장비를 점검합니다.")
except ValueError as e:
print(f"입력 오류: {e}")
- isdigit()은 문자열이 오로지 숫자로만 이루어져 있는지 확인하는 문자열 메서드
(4) 문자열 포맷팅
f-string:
name = "Router"
ip = "192.168.1.1"
print(f"장비 {name}의 IP는 {ip}입니다.")
.format():
print("장비 {}의 IP는 {}입니다.".format(name, ip))
3) 기본 실습 과제
과제 1
문제 설명: 사용자로부터 장비 수를 입력받아, 각 장비 이름(Device1, Device2, ...)을 출력하세요. 입력값이 숫자가 아니면 오류 메시지를 출력해야 합니다.

과제 2
문제 설명: 사용자로부터 IP 주소를 입력받아, IP 주소가 192.로 시작하면 "내부망"을, 아니면 "외부망"을 출력하세요.

startswith()
문자열이 특정 접두사로 시작하는지 확인 (IP 주소, 특정 키워드 판별에 유용)
예: "192.168.0.1".startswith("192.") → True
endswith()
문자열이 특정 접미사로 끝나는지 확인 (파일 확장자 검사할 때 유용)
예: "data.csv".endswith(".csv") → True
과제 3
문제 설명: 1~5까지 반복하면서 짝수는 건너뛰고(continue), 홀수만 출력하세요.

과제 4
문제 설명: 사용자로부터 반복 횟수를 입력받고, "점검 중"이라는 문구를 입력한 횟수만큼 출력하세요.

과제 5
문제 설명: 장비 리스트 devices = ["R1", "R2", "SW1"]에서 모든 장비를 출력하고, 마지막 장비 출력 후 "모든 장비 점검 완료"를 출력하세요.

4) 심화 실습 과제
과제 1 (심화)
문제 설명: 장비 상태 리스트가 statuses = ["up", "down", "down", "up"]일 때, up인 장비 개수와 down인 장비 개수를 각각 출력하세요.

과제 2 (심화)
문제 설명: 사용자로부터 장비 이름과 상태(up 또는 down)를 3번 입력받아, 상태별로 딕셔너리에 저장한 후 출력하세요. (예: { "up": ["R1"], "down": ["SW1"] })

과제 3 (심화)
문제 설명: 사용자로부터 임의의 숫자를 입력받아, 1부터 입력한 숫자까지의 합을 구하고 출력하세요. (숫자가 아니면 오류 메시지 출력)

'파이썬 > 기초 학습' 카테고리의 다른 글
Day 6: 조건문 & 반복문 추가학습 (2) | 2025.08.01 |
---|---|
Day 5: 반복문(while,for) 추가 학습 (3) | 2025.07.30 |
Day 4: List,Dictionary,Set,Tuple 추가 학습 (2) | 2025.07.26 |
Day 3: 함수 정의 & 파일 처리 학습 (3) | 2025.07.24 |
Day 1: 자료형 & 연산자 (1) | 2025.07.19 |