문제

파이공업은 여러 개의 베어링을 무작위로 선택하여 지름을 측정해 리스트에 담은 후, 이 정보를 이용해 베어링의 불량률을 계산하려 한다. 지름이 0.99mm 이상 1.01mm 미만인 베어링을 정상 제품이라고 가정하고, 베어링의 지름을 담은 리스트를 전달받아 불량률을 계산하는 함수 faulty_rate()를 정의하라. 다음은 이 함수로 10개의 베어링으로 불량률을 계산한 예이다.

>>> diameters = [0.985, 0.992, 1.004, 0.995, 0.899, 1.001, 1.002, 1.003, 1.009, 0.998]
>>> faulty_rate(diameters)
0.2

코드

def faulty_rate(diameters):
    """베어링의 지름을 담은 리스트를 전달받아 불량률을 계산하여 반환한다.
    베어링의 지름이 0.99mm 이상 1.01mm 미만이면 정상 제품으로 판단한다."""
    faulty = list(filter(lambda diameter: not (0.99 <= diameter < 1.01), diameters))
    return len(faulty) / len(diameters)

# 함수의 동작 확인
diameters = [0.985, 0.992, 1.004, 0.995, 0.899, 1.001, 1.002, 1.003, 1.009, 0.998]
print(faulty_rate(diameters))

실행 결과

0.2

해설