본문 바로가기
파이썬

리스트에서 3의 배수만 출력하는 방법

by ghiott 2025. 3. 26.
반응형

📌 메타 설명

Python을 사용하여 입력된 숫자 중 3의 배수만 필터링하는 프로그램을 만들어 보세요!
리스트 컴프리헨션을 활용하면 코드를 더욱 간결하고 효율적으로 작성할 수 있습니다.


1. Python에서 리스트와 3의 배수 필터링하기

리스트에서 특정 조건을 만족하는 숫자만 추출하는 기능은 데이터 처리에서 필수적인 기법입니다.
특히, 3의 배수만 출력하는 프로그램은 Python 리스트와 조건문을 활용하는 좋은 연습이 됩니다.

🔹 프로그램 개요

사용자로부터 5개의 숫자를 입력받아 리스트에 저장
리스트에서 3의 배수만 필터링하여 새로운 리스트 생성
3의 배수 목록을 출력


2. Python 코드 예제 (3의 배수 필터링)

Python에서는 리스트 컴프리헨션을 활용하여 조건을 만족하는 요소만 추출할 수 있습니다.
아래 코드는 사용자로부터 5개의 숫자를 입력받고, 그중 3의 배수만 출력하는 프로그램입니다.

# 빈 리스트 생성
numbers = []

# 사용자로부터 5개의 숫자 입력 받기
for i in range(5):
    num = int(input(f"{i+1}번째 숫자를 입력하세요: "))  # 정수 입력
    numbers.append(num)  # 리스트에 추가

# 리스트에서 3의 배수만 필터링
multiples_of_three = [num for num in numbers if num % 3 == 0]

# 결과 출력
print("3의 배수:", multiples_of_three)

3. 코드 설명

  1. 리스트 생성
    • numbers = [] → 빈 리스트를 생성하여 입력받은 숫자를 저장할 공간을 마련합니다.
  2. 반복문을 활용한 입력
    • for i in range(5): → 5번 반복하면서 숫자를 입력받습니다.
    • int(input(f"{i+1}번째 숫자를 입력하세요: ")) → 사용자가 입력한 값을 int로 변환하여 숫자로 저장합니다.
    • numbers.append(num) → 입력받은 숫자를 리스트에 추가합니다.
  3. 3의 배수만 필터링
    • multiples_of_three = [num for num in numbers if num % 3 == 0]
      • 리스트 컴프리헨션을 활용하여 num % 3 == 0 조건을 만족하는 숫자만 새로운 리스트에 저장합니다.
  4. 결과 출력
    • print("3의 배수:", multiples_of_three) → 필터링된 3의 배수 리스트를 출력합니다.

4. 실행 예제

✅ 실행 과정

1번째 숫자를 입력하세요: 10  
2번째 숫자를 입력하세요: 9  
3번째 숫자를 입력하세요: 15  
4번째 숫자를 입력하세요: 22  
5번째 숫자를 입력하세요: 6  
3의 배수: [9, 15, 6]

💡 입력한 숫자 중에서 3의 배수(9, 15, 6)만 필터링되어 출력되었습니다! 🚀


5. 리스트 컴프리헨션을 활용한 간결한 코드

반복문을 사용하지 않고, 한 줄의 코드로 리스트를 생성하는 방법도 있습니다.

# 리스트 컴프리헨션을 활용한 입력
numbers = [int(input(f"{i+1}번째 숫자를 입력하세요: ")) for i in range(5)]

# 3의 배수만 필터링
multiples_of_three = [num for num in numbers if num % 3 == 0]

# 결과 출력
print("3의 배수:", multiples_of_three)

💡 리스트 컴프리헨션을 사용하면 코드가 더 간결해집니다!


6. 예외 처리 추가 (잘못된 입력 방지)

사용자가 숫자가 아닌 값을 입력하면 오류가 발생할 수 있습니다.
이를 방지하기 위해 **예외 처리(try-except)를 추가하여 프로그램이 안전하게 실행되도록 개선할 수 있습니다.

# 빈 리스트 생성
numbers = []

# 사용자로부터 5개의 숫자 입력 받기 (예외 처리 포함)
for i in range(5):
    while True:
        try:
            num = int(input(f"{i+1}번째 숫자를 입력하세요: "))  # 정수 입력
            numbers.append(num)  # 리스트에 추가
            break  # 입력이 성공하면 반복문 종료
        except ValueError:
            print("입력 오류! 숫자를 입력하세요.")  # 예외 발생 시 다시 입력 요청

# 3의 배수만 필터링
multiples_of_three = [num for num in numbers if num % 3 == 0]

# 결과 출력
print("3의 배수:", multiples_of_three)

✅ 실행 예제

1번째 숫자를 입력하세요: 10  
2번째 숫자를 입력하세요: hello  
입력 오류! 숫자를 입력하세요.  
2번째 숫자를 입력하세요: 9  
3번째 숫자를 입력하세요: 15  
4번째 숫자를 입력하세요: world  
입력 오류! 숫자를 입력하세요.  
4번째 숫자를 입력하세요: 22  
5번째 숫자를 입력하세요: 6  
3의 배수: [9, 15, 6]

💡 숫자가 아닌 값을 입력하면 오류 메시지를 출력하고 다시 입력을 받도록 구현했습니다! 😊


7. 결론

이번 글에서는 리스트를 활용하여 입력받은 숫자 중 3의 배수만 출력하는 방법을 배웠습니다.

리스트 생성 (numbers = [])
반복문을 활용한 입력 (for 문 사용)
리스트에서 3의 배수 필터링 (num % 3 == 0)
리스트 컴프리헨션을 활용하여 간결한 코드 작성
예외 처리를 추가하여 안전한 입력 처리

이제 Python을 활용하여 3의 배수를 필터링하는 다양한 연습을 해보세요! 🚀

반응형