리스트에 포함된 모든 숫자를 곱하는 것은 파이썬 프로그래밍에서 자주 활용되는 기본 연산입니다. 이 글에서는 순회(traversing) 기법을 이용해 리스트의 모든 요소를 곱하는 방법을 단계별로 살펴보겠습니다.
먼저 사용자 입력을 저장할 리스트를 생성하고, 곱셈 결과를 담을 변수의 초기값을 1로 설정합니다. 그다음 리스트의 첫 번째 요소부터 마지막 요소까지 차례대로 순회하면서 각 숫자를 곱셈 변수에 하나씩 곱해 나가면 됩니다.
예제
입력: A=[5,6,3] 출력: 90 설명: 5*6*3 = 90
알고리즘
1단계: 리스트(lst)에 모든 숫자를 입력받는다.
2단계: 리스트의 모든 값을 곱하기 위해 순회 기법을 사용한다.
3단계: 변수 X를 1로 초기화한다.
4단계: 리스트의 처음부터 끝까지 반복하면서
X = X * i 로 각 요소를 하나씩 곱한다.
5단계: 최종 결과 X를 출력한다.
예제 코드
# 리스트의 모든 숫자를 곱하는 함수
def mul_all_num(lst):
x = 1
for i in lst:
x = x * i
return x
# 드라이버 코드
A = list()
B = list()
C = list()
n1 = int(input("첫 번째 리스트의 크기를 입력하세요 :: "))
n2 = int(input("두 번째 리스트의 크기를 입력하세요 :: "))
n3 = int(input("세 번째 리스트의 크기를 입력하세요 :: "))
print("첫 번째 리스트의 요소를 입력하세요 ::")
for i in range(n1):
k = int(input(""))
A.append(k)
print("두 번째 리스트의 요소를 입력하세요 ::")
for j in range(n2):
k1 = int(input(""))
B.append(k1)
print("세 번째 리스트의 요소를 입력하세요 ::")
for j in range(n3):
k1 = int(input(""))
C.append(k1)
print("첫 번째 리스트의 모든 숫자의 곱 ::>", mul_all_num(A))
print("두 번째 리스트의 모든 숫자의 곱 ::>", mul_all_num(B))
print("세 번째 리스트의 모든 숫자의 곱 ::>", mul_all_num(C))
실행 결과
첫 번째 리스트의 크기를 입력하세요 :: 3 두 번째 리스트의 크기를 입력하세요 :: 4 세 번째 리스트의 크기를 입력하세요 :: 5 첫 번째 리스트의 요소를 입력하세요 :: 1 2 5 두 번째 리스트의 요소를 입력하세요 :: 3 2 4 5 세 번째 리스트의 요소를 입력하세요 :: 12 2 1 3 2 첫 번째 리스트의 모든 숫자의 곱 ::> 10 두 번째 리스트의 모든 숫자의 곱 ::> 120 세 번째 리스트의 모든 숫자의 곱 ::> 144
더 간단한 방법: math.prod() 활용
파이썬 3.8 이상 버전에서는 math 모듈의 prod() 함수를 사용하면 위 과정을 한 줄로 처리할 수 있습니다. 반복문 없이 리스트 전체의 곱을 손쉽게 계산할 수 있어 실무에서도 유용하게 활용됩니다.
import math A = [5, 6, 3] result = math.prod(A) print(result) # 출력: 90
마무리
직접 반복문을 작성하는 방식은 곱셈의 동작 원리를 이해하는 데 도움이 되며, math.prod()를 사용하는 방식은 코드를 더욱 간결하게 만들어 줍니다. 상황에 맞게 두 가지 방법을 선택하여 사용해 보시기 바랍니다.