파이썬 - 배열 연습
안녕하세요, �码자를 꿈꾸는 프로그래머 여러분! 파이썬 배열의 세계로 향하는 이 흥미로운 여정에서 여러분의 가이드가 되어 기쁩니다. 컴퓨터 과학 교사로서 많은 경험을 가진 저는 수많은 학생들이 이 개념을 이해할 때 빛나는 미소를 본 적이 많습니다. 그럼, 배열을 즐겁고 쉽게 이해할 수 있도록 몽땅 뛰어들어보겠습니다!
배열이란 무엇인가요?
예제에 들어가기 전에 기본기를 다지자고요. 파이썬에서는 몇몇 다른 언어들처럼 내장된 배열 데이터 구조가 없습니다. 대신, 매우 다양하고 강력한 리스트를 사용합니다. 오늘은 우리의 목적으로는 리스트를 "배열"로 사용하겠습니다.
배열(또는 파이썬에서는 리스트)는 여러 항목을 담을 수 있는 컨테이너입니다. 데이터를 담고 있는 여러 차량이 있는 기차를 상상해보세요. 그게 프로그래밍에서 배열의 본질입니다!
예제 1: 배열 생성 및 접근
간단한 예제로 시작해보겠습니다:
fruits = ["사과", "바나나", "체리", "데이트"]
print(fruits[0]) # 출력: 사과
print(fruits[2]) # 출력: 체리
이 예제에서는 fruits
라는 배열(리스트)를 생성했습니다. 배열의 각 항목은 인덱스를 가지고 있으며, 0부터 시작합니다. 따라서 fruits[0]
는 첫 번째 항목인 "사과"를, fruits[2]
는 세 번째 항목인 "체리"를 돌려줍니다.
학교의 레이어 콜러 보다 생각해보세요. 시작점에서 (인덱스 0) 서서히 세 번째 레이어(인덱스 2)는 두 걸음 떨어져 있습니다.
예제 2: 배열 수정
배열은 가변적입니다. 즉, 생성된 후에도 변경할 수 있습니다. 어떻게 하는지 살펴보겠습니다:
numbers = [1, 2, 3, 4, 5]
numbers[2] = 10
print(numbers) # 출력: [1, 2, 10, 4, 5]
numbers.append(6)
print(numbers) # 출력: [1, 2, 10, 4, 5, 6]
numbers.remove(2)
print(numbers) # 출력: [1, 10, 4, 5, 6]
여기서는 세 가지 연산을 수행했습니다:
- 인덱스 2의 값을 3에서 10으로 변경했습니다.
-
append()
를 사용하여 배열의 끝에 새로운 숫자(6)를 추가했습니다. -
remove()
를 사용하여 배열에서 숫자 2를 제거했습니다.
이것은 플레이리스트를 편집하는 것과 같습니다. 노래를 변경(수정), 끝에 새로운 노래를 추가(append), 더 이상 좋아하지 않은 노래를 제거(remove)할 수 있습니다.
예제 3: 배열을 순회하기
배열의 가장 강력한 기능 중 하나는 모든 항목을 빠르게 처리할 수 있습니다. 이를 위해 루프를 사용합니다:
colors = ["빨강", "초록", "파랑", "노랑"]
# for 루프 사용
for color in colors:
print(f"{color}을 좋아해!")
# while 루프 사용
i = 0
while i < len(colors):
print(f"인덱스 {i}의 색은 {colors[i]}입니다")
i += 1
첫 번째 루프에서는 각 색을 "좋아해"라고 말하고 있습니다. 마치 옷장을 돌면서 각 옷에 칭찬을 드리는 것과 같습니다.
두 번째 루프는 다른 접근 방식을 사용합니다. 우리는 수동으로 인덱스(i
)를 증가시키고 배열의 끝에 도달할 때까지 멈춥니다. 이는 박물관에서 각 작품을 거쳐가며 걸음수를 세는 것과 같습니다.
연습 프로그램
이제 기본 개념을 다지고 있으므로, 배운 것을 강화하기 위해 몇 가지 연습을 시도해보겠습니다. 기억하세요, 연습이 실력을 만든다!
연습 1: 배열 요소의 합
숫자들의 배열의 모든 요소의 합을 계산하는 프로그램을 작성하십시오.
def sum_array(arr):
total = 0
for num in arr:
total += num
return total
numbers = [1, 2, 3, 4, 5]
print(f"합은: {sum_array(numbers)}") # 출력: 합은: 15
이 함수는 배열의 각 숫자를 순회하면서 누적 합계에 추가합니다. 마치 돼지 금고에 있는 모든 코인을 세는 것과 같습니다!
연습 2: 가장 큰 요소 찾기
배열에서 가장 큰 요소를 찾는 함수를 생성하십시오.
def find_largest(arr):
if len(arr) == 0:
return None
largest = arr[0]
for num in arr:
if num > largest:
largest = num
return largest
numbers = [3, 7, 2, 8, 1, 9, 5, 4]
print(f"가장 큰 숫자는: {find_largest(numbers)}") # 출력: 가장 큰 숫자는: 9
이 함수는 처음에 첫 번째 숫자가 가장 큰 것으로 가정한 후, 각 숫자를 현재 가장 큰 숫자와 비교합니다. 마치 챔피언십에서 각 숫자가 챔피언이 되기 위해 경쟁하는 것과 같습니다!
연습 3: 배열 뒤집기
배열의 요소 순서를 뒤집는 함수를 작성하십시오.
def reverse_array(arr):
return arr[::-1]
original = [1, 2, 3, 4, 5]
reversed_arr = reverse_array(original)
print(f"원래 배열: {original}")
print(f"뒤집힌 배열: {reversed_arr}")
이는 파이썬 슬라이스를 사용하여 배열을 뒤집는 방법입니다. 마치 사진첩을 앞에서 뒤로 펼치는 것과 같습니다!
다음은 우리가 사용한 배열 메서드를 요약한 표입니다:
메서드 | 설명 | 예제 |
---|---|---|
append() |
리스트의 끝에 요소를 추가합니다 | fruits.append("포도") |
remove() |
지정된 요소의 첫 번째 발생을 제거합니다 | fruits.remove("바나나") |
len() |
리스트의 요소 수를 반환합니다 | len(fruits) |
인덱싱 | 특정 위치의 요소에 접근하거나 수정합니다 |
fruits[0] 또는 fruits[1] = "키위"
|
슬라이싱 | 리스트의 일부를 반환합니다 |
fruits[1:3] 또는 fruits[::-1] 로 뒤집기 |
기억하세요, 배열(파이썬에서는 리스트)는 프로그래밍의 기본이며, 끊임없이 사용됩니다. 그들은 데이터 구조의 스위스 Army 톱니칼처럼 다양하고 유용하며, 코딩 도구킷에 필수적입니다.
이 연습을 하면서 배열에 대해 더 편안해질 것입니다. 처음에는 쉽게 이해되지 않也不要沮丧 - 코딩을 배우는 것은 여정이며, 앞으로 나아가는 모든 걸 통과입니다. 계속 실험하고, 질문하고, 가장 중요한 것은 계속 코딩하십시오!
좋은 코딩, 미래의 프로그래머 여러분! 여러분의 배열이 항상 정렬되고, 루프가 무한히 반복되는 것은 원하시면만 하세요!
Credits: Image by storyset