문제 25
0점과 빈 목록을 구분하는 평균 코드 수정
실제 입력과 오류 코드, 기대 동작 및 경계 사례를 제공하고 실행 여부를 구분한 코드 수정을 요청하는 프롬프트를 작성한다.
문제
주어진 상황과 조건을 빠짐없이 담아 AI가 적절한 답을 만들 수 있는 프롬프트를 작성해 보세요.
정보 수업에서 scores = [80, 0, 100]의 평균을 구하려 했지만 if s 조건 때문에 실제 점수인 0이 빠졌습니다. 모든 점수를 포함하고 빈 목록에서는 None을 반환하는 average 함수를 작성하며, 오류 원인과 세 입력의 예상 결과를 확인해야 합니다.
반영해야 할 조건
- scores = [80, 0, 100]
- valid = [s for s in scores if s]; result = sum(valid) / len(valid)
- average(scores)
- 숫자 목록
- 0도 실제 점수이므로 평균에 포함
- None 반환
- [80, 0, 100], [0], []
- 실행하지 않았다면 예상 결과로 표시하고 실행했다고 주장하지 않음
원하는 결과
- 0점이 제외되는 오류 원인
- 수정한 Python average 함수
- 세 입력의 예상 결과
AI 모범 답변
아래와 같은 답변을 얻어낼 수 있도록 프롬프트를 구체적으로 작성해 보세요.
오류 원인: if s라는 조건은 0을 제외하므로 실제 점수인 0점이 평균 계산에서 빠집니다.
수정 코드:
def average(scores):
if not scores:
return None
return sum(scores) / len(scores)
예상 결과:
average([80, 0, 100]) = 60.0
average([0]) = 0.0
average([]) = None