파이썬 평균 구하기
평균이란 무엇이고, 왜 직접 계산할까?
파이썬에서 '평균'을 구하는 방법을 배우는 것은 데이터를 다룰 때 꼭 필요한 기초입니다. 평균은 여러 개의 수를 모두 더한 뒤, 개수로 나누어 얻는 가장 단순한 통계 값입니다. 내장 함수 없이 직접 합계와 나눗셈을 사용하는 것은 계산의 기본 원리를 이해하고, 다양한 상황에서 오류 없이 평균을 구할 수 있는 능력을 키워줍니다.
이 글을 통해 아래 내용을 차근차근 배울 수 있습니다.
- 평균 구하기의 기본 원리
- 리스트에서 합계(sum)와 개수(len)를 활용하는 방법
- 정수와 실수 자료형의 차이와 주의점
- 자주 하는 실수와 수정 방법
- 직접 풀어보는 연습 문제
가장 단순한 평균 구하기: 합계와 개수로 직접 계산
먼저, 평균을 구하는 가장 기본적인 코드를 살펴봅니다. 숫자 여러 개가 들어 있는 리스트가 있다면, 합계를 구하고 개수로 나누기만 하면 됩니다.
numbers = [10, 20, 30, 40, 50]
total = sum(numbers)
count = len(numbers)
average = total / count
print("합계:", total)
print("개수:", count)
print("평균:", average)실행 결과
합계: 150
개수: 5
평균: 30.0
위 코드에서 sum() 함수는 리스트 안의 숫자를 모두 더해주고, len() 함수는 리스트 안의 요소 개수를 세어줍니다. 마지막으로 total / count로 평균을 구합니다.
실제 사용 예제: 입력 자료가 다를 때 평균 구하기
이번에는 학생 점수처럼 직접 숫자를 입력받아 평균을 계산하는 예제를 살펴봅니다. 여러 개의 점수를 입력받아 평균을 구하고 싶은 경우, input() 함수와 split()을 함께 사용하면 됩니다.
scores = input("점수를 공백으로 구분하여 입력하세요: ")
split_scores = scores.split()
int_scores = [int(score) for score in split_scores]
average = sum(int_scores) / len(int_scores)
print("평균 점수:", average)
이 코드는 사용자가 직접 여러 숫자를 입력하면, 공백으로 나누어 각 점수를 정수로 바꾼 뒤 평균을 구합니다. int()로 자료형을 바꿔야 하는 이유는, input()의 결과가 기본적으로 문자열(string)이기 때문입니다.
초보자가 자주 하는 실수와 수정 방법
평균을 구할 때 초보자가 가장 자주 만나는 실수는 아래와 같습니다.
- 합계나 개수를 구하는 함수를 사용하지 않고 직접 값을 잘못 입력
- 빈 리스트의 평균을 구하려고 해서 0으로 나누기 오류 발생
- 정수끼리 나눗셈을 했을 때 원하는 소수점 결과가 안 나옴
이런 실수에 대한 예시와 수정 방법을 확인해봅니다.
잘못된 예: 0으로 나누기 오류
numbers = []
avg = sum(numbers) / len(numbers)
print(avg)
위 코드는 리스트가 비어 있을 때 len(numbers)가 0이 되어 ZeroDivisionError가 발생합니다. 이런 상황은 미리 리스트가 비어있는지 확인해서 막을 수 있습니다.
numbers = []
if len(numbers) == 0:
print("평균을 계산할 수 없습니다. 리스트가 비어 있습니다.")
else:
avg = sum(numbers) / len(numbers)
print("평균:", avg)실행 결과
평균을 계산할 수 없습니다. 리스트가 비어 있습니다.
정수 나눗셈에서 원하는 소수점 결과가 나오지 않을 때
numbers = [1, 2, 3]
avg = sum(numbers) / len(numbers)
print("평균:", avg)실행 결과
평균: 2.0
파이썬 3에서는 정수/정수 나눗셈도 자동으로 실수(소수점) 결과를 내지만, 만약 // 연산자를 쓰게 되면 몫만 나오므로 주의해야 합니다.
numbers = [1, 2, 3]
avg = sum(numbers) // len(numbers)
print("평균:", avg)실행 결과
평균: 2
위 예제의 //는 실수 결과가 아니라 정수 몫만 나오니, 평균 계산에는 /를 반드시 사용하세요.
더 안전하고 다양한 평균 계산 방법
평균을 구할 때 입력값이 모두 정수일 필요는 없습니다. 실수가 섞여 있는 경우에도 같은 방법을 사용할 수 있습니다. 또한 평균을 소수점 아래 둘째 자리까지 반올림해서 출력하고 싶을 수도 있습니다.
values = [1.5, 2.0, 3.25]
average = sum(values) / len(values)
print("평균:", round(average, 2))실행 결과
평균: 2.25
round(average, 2)는 평균값을 소수점 둘째자리까지 반올림합니다.
또한, sum()과 len()은 리스트뿐만 아니라 튜플, 집합(set) 같은 여러 시퀀스 자료형에도 사용할 수 있습니다.
핵심 정리 및 직접 해볼 연습 문제
평균은 모든 값의 합을 값의 개수로 나누어서 구합니다. 파이썬에서는 sum()과 len() 함수를 조합하면 대부분의 경우 쉽게 평균을 구할 수 있습니다. 다만, 빈 리스트나 자료형 변환, 나눗셈 연산자에 주의해야 합니다.
연습 문제
- 아래 리스트의 평균을 직접 계산하는 코드를 작성해보세요.
data = [7, 8, 9, 10] - 실수와 정수가 섞인 리스트의 평균을 소수점 한 자리까지 반올림해서 출력하는 코드를 작성하세요.
data = [4.5, 3, 7.2, 6] - 빈 리스트가 입력되었을 때 "계산할 수 없습니다."를 출력하는 코드를 만들어보세요.
힌트:if len(data) == 0을 활용하세요.
이 글에 나온 방법을 직접 따라 해보며, 코드 실행 결과를 꼭 확인해보세요!