본문 바로가기
python/python 수업

과제 - 생일 일교차

by sj0020 2020. 8. 28.
import csv
f = open('weather0106.csv', encoding='cp949')
data = csv.reader(f, delimiter=',')
header = next(data) # 첫줄 날짜,지점,최고... 띄워넘으려면 넣어야됨

birth_list = [] #생일 리스트
max_temp = 0 #최고기온 값
min_temp = 0 #최저기온 값
max_range = 0 #최고 일교차 값
temp_range = 0 #일교차 값
daily_range = [] #생일날들의 일교차를 요소로 가진 리스트
birth_dailyrange = {} #{생일 : 일교차} 딕셔너리


for row in data :
  if '-01-06' in row[0] :
    birth_list.append(row[0])   #생일 리스트 생성
    max_temp = float(row[-1])
    min_temp = float(row[-2])
    temp_range = max_temp - min_temp
    daily_range.append(round(temp_range,2)) ##생일날들의 일교차를 요소로 가진 리스트 생성(소수 2번째자리 rounding)

print("제 생년월일은 %s 입니다" %birth_list[0])

for i in range(len(birth_list)) :
  print("%s의 일교차는 %.2f입니다." %(birth_list[i], daily_range[i]))

birth_dailyrange = {x : y for x, y in zip(birth_list, daily_range)} #{생일 : 일교차} 딕셔너리 생성

for i in range(len(daily_range)) :  #최고 일교차 값 구하기
  if daily_range[i] > temp_range :
    temp_range = daily_range[i]

print("제 생일 중 가장 일교차가 큰 날은 %s이고, 일교차는 %.2f 입니다." %([k for k, v in birth_dailyrange.items() if v == temp_range], temp_range))

f.close()

제 생년월일은 1991-01-06 입니다 1991-01-06의 일교차는 10.60입니다. 1992-01-06의 일교차는 5.50입니다. 1993-01-06의 일교차는 5.40입니다. 1994-01-06의 일교차는 11.90입니다. 1995-01-06의 일교차는 7.80입니다. 1996-01-06의 일교차는 7.70입니다. 1997-01-06의 일교차는 6.30입니다. 1998-01-06의 일교차는 7.20입니다. 1999-01-06의 일교차는 9.10입니다. 2000-01-06의 일교차는 8.40입니다. 2001-01-06의 일교차는 10.50입니다. 2002-01-06의 일교차는 13.50입니다. 2003-01-06의 일교차는 10.90입니다. 2004-01-06의 일교차는 11.90입니다. 2005-01-06의 일교차는 7.50입니다. 2006-01-06의 일교차는 5.20입니다. 2007-01-06의 일교차는 7.00입니다. 2008-01-06의 일교차는 12.70입니다. 2009-01-06의 일교차는 11.30입니다. 2010-01-06의 일교차는 7.70입니다. 2011-01-06의 일교차는 6.20입니다. 2012-01-06의 일교차는 8.70입니다. 2013-01-06의 일교차는 8.10입니다. 2014-01-06의 일교차는 10.50입니다. 2015-01-06의 일교차는 8.40입니다. 2016-01-06의 일교차는 6.60입니다. 2017-01-06의 일교차는 7.70입니다. 2018-01-06의 일교차는 9.90입니다. 2019-01-06의 일교차는 12.30입니다. 2020-01-06의 일교차는 4.40입니다. 제 생일 중 가장 일교차가 큰 날은 ['2002-01-06']이고, 일교차는 13.50 입니다.

 

 

[] 어떻게 없애는지 모를 /../..

변수=[k for k, v in birth_dailyrange.items() if v == temp_range]
에 두고 해도 [] 없애면 에러뜸 ... {}로 바꾸면 {'2002-01-06'}로 뜨고 .. ()로 바꾸면 안됨 ..

'python > python 수업' 카테고리의 다른 글

fairytale slicing  (0) 2020.09.08
데이터시각화 matplot weather0106  (0) 2020.09.08
weather - colab 최고온도  (0) 2020.08.18
p165 예제 lambda로  (0) 2020.08.17
p167 lambda  (0) 2020.08.17