강의자료 · 마이크로프로세서응용설계

Python 기초

학습 목표

센서 기록에는 누락과 경계값이 섞입니다. 정상 자료와 예외 자료를 같은 함수로 처리해 봅니다.

센서 기록을 자료구조로 표현

시작 조건

기록은 [(0,21.0),(1,21.5),(2,None),(3,22.0),(4,20.5)]이며, 각 쌍은 시간[s]·온도[°C]입니다.

진행 방법

  1. List의 각 항목을 time·temperature가 있는 Dictionary로 바꾸세요.
  2. None을 제외한 표본의 개수·평균·최솟값·최댓값을 구하세요.
  3. 입력 원본을 변경하지 않는 summarize 함수를 작성하세요.

남길 결과

records=[(0,21.),(1,21.5),(2,None),(3,22.),(4,20.5)]
valid=[value for _,value in records if value is not None]
print('valid count',len(valid),'mean',sum(valid)/len(valid))
# TODO: dict 변환과 summarize 함수를 추가하세요.

결과 기록·자가 점검

t [s]:

온도 [°C]:

유효 여부:

확인할 점

경계값과 빈 입력

시작 조건

코드의 cases에 있는 세 입력을 각각 활동 1과 같은 Dictionary List로 변환한 뒤 summarize에 넣습니다. 빈 List는 그대로 두고, 각 쌍의 첫 값은 time, 둘째 값은 temperature에 대응시킵니다.

진행 방법

  1. 유효 표본이 0개일 때 평균을 None으로 돌려주도록 정하세요.
  2. 한 표본과 여러 표본에서 같은 반환 필드를 사용하는지 확인하세요.
  3. assert로 빈 입력·결측 입력·한 표본 입력을 각각 검사하세요.

남길 결과

cases=[[],[(0,None)],[(0,25.)]]
# TODO: summarize 결과와 assert를 작성하세요.

결과 기록·자가 점검

입력 종류:

유효 수:

평균:

처리 이유:

확인할 점

반복 측정을 함수로 정리

시작 조건

두 장치 A=[212223]A=\begin{bmatrix}21&22&23\end{bmatrix}, B=[19,None,20,21]을 비교합니다. 원본과 같은 온도 단위입니다.

진행 방법

  1. 장치별 온도 List를 time·temperature가 있는 Dictionary List로 바꾸어 같은 summarize 함수에 넣으세요. 이 자료에는 시각이 없으므로 time=None으로 두고 온도만 요약합니다.
  2. 장치별 유효 표본 수·평균·범위를 한 표에 적으세요.
  3. 표본 수와 결측 유무가 다른 자료를 비교할 때 확인할 점을 간단히 정리하세요.

남길 결과

devices={'A':[21,22,23],'B':[19,None,20,21]}
# TODO: 같은 함수로 장치별 요약을 작성하세요.

결과 기록·자가 점검

장치:

유효 수:

평균 [°C]:

최소·최대 [°C]:

결측 수:

확인할 점