T = [0.0] * 12 R = [0.0] * 12 # リストを宣言する # データを読みこむ print ("Input file?") ifile = input () # ファイル名を入力する f = open (ifile, "r") # ファイルを開く m = 1 while m <= 12: # 同じ処理を12回繰り返す a, b, c = f.readline().split() # データをファイルから読みこむ T[m-1] = float (b) # 気温と降水量の値を R[m-1] = float (c) # リストに代入する m = m + 1 # カウントをひとつ進める f.close () # ファイルを閉じる # 入力データを書き出す print ("Month Temp. Prec.") m = 1 while m <= 12: # 同じ処理を12回繰り返す print (" %4d %5.1f %6.1f" % (m, T[m-1], R[m-1])) # データを書き出す m = m + 1 # カウントをひとつ進める # 年平均気温を計算する s = 0.0 # 合計値にゼロを代入する m = 1 while m <= 12: # 同じ処理を12回繰り返す s = s + T[m-1] # 月平均気温の値を加える m = m + 1 # カウントをひとつ進める Tave = s / 12.0 # 平均値を計算する # 月平均気温の最大値と最小値を求める Tmax = T[1-1] # 変数TmaxとTminに Tmin = T[1-1] # 1月の月平均気温の値を代入する m = 2 while m <= 12: # 2〜12月の月平均気温を調べる if T[m-1] > Tmax: # 月平均気温がTmaxより大きい場合は Tmax = T[m-1] # Tmaxの値を更新する if T[m-1] < Tmin: # 月平均気温がTminより小さい場合は Tmin = T[m-1] # Tminの値を更新する m = m + 1 # カウントをひとつ進める # 年降水量を計算する Rtotal = 0.0 # 合計値にゼロを代入する m = 1 while m <= 12: # 同じ処理を12回繰り返す Rtotal = Rtotal + R[m-1] # 月降水量の値を加える m = m + 1 # カウントをひとつ進める # 乾燥する季節を判定する Rmin = R[1-1] # 変数Rminに MonRmin = 1 # 1月の月降水量の値を代入する m = 2 while m <= 12: # 同じ処理を11回繰り返す if R[m-1] < Rmin: # 月降水量がRminより小さい場合は Rmin = R[m-1] # Rminの値を更新する MonRmin = m m = m + 1 # カウントをひとつ進める if MonRmin >= 4 and MonRmin <= 9: # 最少雨月が夏(4〜9月)の場合 Rmax = R[1-1] # 変数Rmaxに # 1月の月降水量の値を代入する m = 2 while m <= 3: # 2〜3月の月降水量の値を調べる if R[m-1] > Rmax: # 月降水量がRmaxより大きい場合は Rmax = R[m-1] # Rmaxの値を更新する m = m + 1 # カウントをひとつ進める m = 10 while m <= 12: # 10〜12月の月降水量の値を調べる if R[m-1] > Rmax: # 月降水量がRmaxより大きい場合は Rmax = R[m-1] # Rmaxの値を更新する m = m + 1 # カウントをひとつ進める if Rmin <= Rmax / 3.0: dry = "s" else: dry = "f" if MonRmin <= 3 or MonRmin >= 10: # 最少雨月が冬(10〜3月)の場合 Rmax = R[4-1] # 4月の月降水量の値を代入する m = 5 while m <= 9: # 5〜9月の月降水量の値を調べる if R[m-1] > Rmax: Rmax = R[m-1] m = m + 1 # カウントをひとつ進める if Rmin <= Rmax / 10.0: dry = "w" else: dry = "f" # 乾燥限界値を計算する if dry == "s": Rdry = 20.0 * Tave if dry == "w": Rdry = 20.0 * (Tave + 14.0) if dry == "f": Rdry = 20.0 * (Tave + 7.0) # 計算結果を書き出す print ("Tave = %5.1f" % Tave) # 年平均気温 print ("Tmax = %5.1f" % Tmax) # 最暖月平均気温 print ("Tmin = %5.1f" % Tmin) # 最寒月平均気温 print ("Rtotal = %6.1f" % Rtotal) # 年降水量 print ("Rmax = %6.1f" % Rmax) # 雨季最多月降水量 print ("Rmin = %6.1f" % Rmin) # 最少雨月降水量 print ("Mon.(Rmin) = %2d" % MonRmin) # 最少雨月 print ("Dry season = %s" % dry) print ("Rdry = %6.1f" % Rdry) # 乾燥限界値 # 気候区分を判定する if Rtotal >= Rdry: # 年降水量Rtotalが乾燥限界値Rdry以上の場合 if Tmax >= 10.0: # 最暖月平均気温Tmaxが10℃以上の場合 if Tmin >= 18.0: # 最寒月平均気温Tminが18℃以上の場合 Class = "A" # 熱帯 elif Tmin >= -3.0: # 最寒月平均気温Tminが-3℃以上18℃未満の場合 Class = "C" # 温帯 else: # 最寒月平均気温Tminが-3℃未満の場合 Class = "D" # 亜寒帯 else: # 最暖月平均気温Tmaxが10℃未満の場合 Class = "E" # 寒帯 else: # 年降水量Rtotalが乾燥限界値Rdry未満の場合 Class = "B" # 乾燥帯 print ("Type = %s" % Class) # 結果を書き出す