1) 학습 요약표
학습 내용 | 설명 |
while 반복문 | 조건이 참(True)인 동안 코드 블록을 계속 실행 |
for 반복문 | 리스트, 문자열, 딕셔너리 등 순회 가능한(iterable) 자료형을 하나씩 꺼내 반복 실행 |
range() 함수 | 숫자 범위를 생성 (시작값, 끝값, 간격) |
중첩 반복문 | 반복문 안에서 또 다른 반복문 실행 |
딕셔너리 순회 | keys(), values(), items()로 키와 값 접근 가능 |
print()의 end 옵션 | 출력 시 줄바꿈 대신 원하는 구분자(공백, 콤마 등) 사용 |
2) 이론 학습
1. while 반복문
개념:
- 조건식이 True일 때만 코드 블록을 계속 실행하며, 조건이 False가 되면 종료.
- 반복 횟수가 정해지지 않았을 때 유용.
- 무한 루프를 피하려면 카운터 증가나 break 사용 필요.
예제 1: 서버 5대 점검
server_count = 0
while server_count < 5:
server_count += 1
print(f"서버 {server_count} 점검 완료")
출력 예시:
서버 1 점검 완료
서버 2 점검 완료
서버 3 점검 완료
서버 4 점검 완료
서버 5 점검 완료
예제 2: 1부터 20까지 합 구하기
num = 1
total = 0
while num <= 20:
total += num
num += 1
print(f"1부터 20까지의 합: {total}")
출력 예시:
1부터 20까지의 합: 210
예제 3: 10부터 50까지 5의 배수 리스트
multiples = []
num = 10
while num <= 50:
multiples.append(num)
num += 5
print(multiples)
출력 예시:
[10, 15, 20, 25, 30, 35, 40, 45, 50]
2. for 반복문
개념:
- iterable 객체(리스트, 문자열, 튜플, 딕셔너리 등)에서 요소를 하나씩 꺼내 반복.
- range()와 함께 사용해 범위 기반 반복 구현 가능.
- 루프 변수는 반복 종료 후 메모리에서 해제됨.
예제 : 포트 번호 출력
for port in range(1000, 1005):
print(f"포트 {port} 체크")
출력 예시:
포트 1000 체크
포트 1001 체크
포트 1002 체크
포트 1003 체크
포트 1004 체크
3. 중첩 반복문
개념:
- 2중 반복문으로 2차원 리스트, 장비-포트 조합 등 처리 가능.
- 바깥 루프 1회당 안쪽 루프가 전체를 반복.
예제 : 2개 스위치, 각 3개 포트 조합
for sw in ["SW1", "SW2"]:
for port in range(1, 4):
print(f"{sw}-포트{port}")
출력 예시:
SW1-포트1
SW1-포트2
SW1-포트3
SW2-포트1
SW2-포트2
SW2-포트3
4. 컬렉션 순회 (리스트, 문자열, 딕셔너리, 튜플 언패킹)
컬렉션 자료형(리스트, 문자열, 딕셔너리, 튜플)을 순회할 때 다양한 방식과 메서드를 활용할 수 있습니다.
예제 : 리스트 인덱스로 순회 (len() 활용)
- 개념: range(len())로 리스트 인덱스를 생성해 요소에 접근.
nums = [1, 3, 5, 7]
for i in range(len(nums)):
print(f"인덱스 {i}: {nums[i]}")
출력 예시:
인덱스 0: 1
인덱스 1: 3
인덱스 2: 5
인덱스 3: 7
예제 : 문자열 문자 출력 (end 옵션 사용)
- 개념: 문자열은 반복 가능한 객체. end=' '로 줄바꿈 대신 공백 출력.
msg = "Python"
for ch in msg:
print(ch, end=' ')
출력 예시:
P y t h o n
예제 : 딕셔너리 순회 (keys, values, items)
- 개념: 딕셔너리는 3가지 방식으로 순회 가능.
fruits = {"apple": "red", "banana": "yellow", "grape": "purple"}
# 키만 순회
for key in fruits.keys():
print(f"과일: {key}")
# 값만 순회
for value in fruits.values():
print(f"색상: {value}")
# 키와 값 함께 순회
for key, value in fruits.items():
print(f"{key}는 {value}색")
출력 예시:
과일: apple
과일: banana
과일: grape
색상: red
색상: yellow
색상: purple
apple는 red색
banana는 yellow색
grape는 purple색
예제 : 다중 변수 언패킹 (리스트, 튜플)
- 개념: 리스트나 튜플의 요소를 여러 변수에 한 번에 할당.
nums1 = [[1,2,3],[4,5,6],[7,8,9]]
for a,b,c in nums1:
print(a,b,c)
nums2 = [(1,2),(3,4)]
for x,y in nums2:
print(x,y)
출력 예시:
1 2 3
4 5 6
7 8 9
1 2
3 4
3) 종합 실습 문제 (5개)
문제 1: 1부터 100까지 3의 배수를 리스트에 저장하고 출력
- while문을 사용해 1부터 100까지 숫자를 반복합니다.
- 각 숫자가 3으로 나눠떨어지는지 검사하여, 나눠떨어지면 리스트에 추가합니다.
- 반복이 끝나면 리스트 전체를 출력합니다.
문제 2: 사용자 입력 숫자까지 짝수 합 계산
- 사용자로부터 양의 정수를 입력받습니다.
- while문으로 1부터 해당 숫자까지 반복하며 짝수인지 검사합니다.
- 짝수인 값만 합산하여 마지막에 총합을 출력합니다.
문제 3: Router와 포트 조합 출력
- for문 중첩을 사용합니다.
- 바깥 for문은 ["Router1","Router2"] 리스트를 순회합니다.
- 안쪽 for문은 range(1,4)를 사용해 각 라우터의 포트 번호를 생성하고 조합 문자열을 출력합니다.
문제 4: IP 리스트 순회 확인 출력
- ['10.0.0.1','10.0.0.2','10.0.0.3'] 리스트를 for문으로 순회합니다.
- 각 IP 주소에 대해 "IP <주소> 확인 완료" 형태로 출력합니다.
문제 5: Active 상태만 출력
- {"DB1":"Active","DB2":"Inactive","DB3":"Active"} 딕셔너리를 순회합니다.
- for문으로 key와 value를 가져오고, value가 "Active"인 경우에만 해당 서버 이름과 상태를 출력합니다.
'파이썬 > 기초 학습' 카테고리의 다른 글
Day 7: 함수 추가학습 (2) | 2025.08.02 |
---|---|
Day 6: 조건문 & 반복문 추가학습 (2) | 2025.08.01 |
Day 4: List,Dictionary,Set,Tuple 추가 학습 (2) | 2025.07.26 |
Day 3: 함수 정의 & 파일 처리 학습 (3) | 2025.07.24 |
Day 2: 조건문 & 반복문 + 입력 처리 (0) | 2025.07.21 |