콘텐츠로 이동

E. 반복문과 리스트


🎯 학습 목표

이 강의를 마치면 다음을 할 수 있어요:

  • ○ 리스트를 반복문과 함께 사용할 수 있다
  • len() 함수로 리스트 길이를 확인할 수 있다
  • ○ 게임에서 모든 총알/적을 처리할 수 있다

핵심 개념

리스트 반복하기

🔄 비유: 줄 서기

마치 줄 서있는 사람들을 한 명씩 확인하는 것처럼! 리스트의 모든 항목을 하나씩 처리합니다.

fruits = ["사과", "바나나", "오렌지"]

for fruit in fruits:
    print(fruit)

# 출력:
# 사과
# 바나나
# 오렌지

len() 함수

len() 함수는 리스트의 항목 개수를 반환합니다.

fruits = ["사과", "바나나", "오렌지"]
print(len(fruits))  # 3

게임에서의 활용

# 모든 총알 이동시키기
for bullet in bullets:
    bullet.position += bullet.forward * speed

# 남은 적이 있는지 확인
if len(enemies) == 0:
    print("승리!")

예제 코드

from ursina import *

app = Ursina()

bullets = []
targets = []

# 타겟 만들기
for i in range(6):
    target = Entity(
        model='cube',
        color=color.white,
        position=(i*2 - 5, 0, 5)
    )
    targets.append(target)

def update():
    # 모든 총알 이동
    for bullet in bullets:
        bullet.z += 0.5  # 앞으로 이동

    # 승리 확인
    if len(targets) == 0:
        print("모든 타겟 제거!")

EditorCamera()
app.run()

실행 결과

모든 총알이 반복문으로 처리됩니다!


리스트 함수 요약

함수 역할 예시
append() 추가 my_list.append(item)
remove() 제거 my_list.remove(item)
len() 개수 len(my_list)

퀴즈

퀴즈: 리스트 길이
리스트의 항목 개수를 확인하는 함수는?
정답 보기

정답: C) len()

len()은 "length(길이)"의 줄임말입니다. 리스트, 문자열 등의 항목 개수를 반환합니다!

print(len([1, 2, 3]))  # 3
print(len("hello"))    # 5

반복문과 리스트 연습:

fruits = ["사과", "바나나", "오렌지"] 리스트가 있을 때:

  • 모든 항목을 하나씩 처리하려면: for fruit fruits:
  • 리스트의 항목 개수(3개)를 확인하려면: (fruits) → 3
  • 리스트가 비었는지 확인: if len(fruits) == :

직접 코딩해보기

블록으로 배운 내용을 Python 코드로 직접 작성해보세요!

리스트 반복하기

for문으로 리스트의 모든 항목을 출력해보세요.

예시 답안
fruits = ['사과', '바나나', '오렌지']
for fruit in fruits:
    print(fruit)

결과: 사과, 바나나, 오렌지가 한 줄씩 출력됩니다!

len()으로 개수 확인하기

len() 함수로 리스트의 항목 개수를 확인해보세요!


축하합니다! 🎉

리스트를 마스터했습니다!

이제 할 수 있는 것들:

  • ✅ 빈 리스트 만들기 []
  • ✅ 항목 추가하기 append()
  • ✅ 항목 제거하기 remove()
  • ✅ 개수 확인하기 len()
  • ✅ 반복문과 함께 사용하기

도전 과제

도전 1: ⭐ 쉬움

for문으로 리스트의 모든 숫자를 더해서 합계를 출력해보세요.

힌트: total = 0으로 시작해서 각 숫자를 더합니다.

도전 2: ⭐ 쉬움

리스트에 5개 항목을 추가하고 len()으로 개수를 확인해보세요.

힌트: append()를 5번 사용하세요.

도전 3: ⭐⭐ 중간

리스트의 각 항목 옆에 인덱스 번호를 함께 출력해보세요.

힌트: enumerate() 함수를 사용하거나 range(len(list))를 사용하세요.

도전 4: ⭐⭐ 중간

두 개의 리스트를 합쳐서 하나로 만들어보세요.

힌트: + 연산자로 리스트를 연결할 수 있습니다.

도전 5: ⭐⭐⭐ 어려움

리스트에서 특정 값 이상인 항목만 새 리스트로 옮겨보세요.

힌트: if 조건문과 append()를 함께 사용하세요.

도전 6: ⭐⭐⭐ 어려움 - 슈팅 게임

  1. 마우스 클릭 시 총알을 bullets 리스트에 추가
  2. update()에서 모든 총알 이동
  3. 총알이 타겟과 충돌하면 둘 다 제거
  4. 모든 타겟 제거 시 "승리!" 출력

힌트: distance_to() 메서드로 충돌을 감지할 수 있습니다.


🧩 핵심 요약

이번 강의에서 배운 내용:

개념 설명
for item in list 리스트 모든 항목 순회
len() 항목 개수 확인
활용 모든 총알/적 처리
승리 조건 len(enemies) == 0

복습 체크리스트

  • [ ] 리스트를 반복문으로 순회하는 방법을 알고 있나요?
  • [ ] len() 함수의 역할을 설명할 수 있나요?
  • [ ] 게임에서 리스트와 반복문을 어떻게 활용하는지 이해했나요?