파이공업은 여러 개의 베어링을 무작위로 선택하여 지름을 측정해 리스트에 담은 후, 이 정보를 이용해 베어링의 불량률을 계산하려 한다. 지름이 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
불량품의 수 / 제품의 수
이다. 이를 파이썬으로 옮기면 len(불량품들) / len(제품들)
이 된다.len(diameters)
이다.filter()
함수 또는 리스트 조건제시법으로 지름이 규격에 맞지 않는 것을 선별하여 구할 수 있다. 이 시퀀스의 개수를 세면 불량품의 수를 구할 수 있다.