 1 # ケース４
 2 
 3 from datetime import datetime, date
 4 
 5 def case4():
 6     print('=== Start case4 ===')
 7 
 8     df = True # デバッグログ出力制御フラグ
 9     #df = False
10 
11     total = 0
12     diff_total = 0
13     quo_total = 0
14     prev_d = 0
15     
16     #ファイルを開く
17     with open('input.data', 'r') as f:
18         # １行読む
19         for line in f:
20             if df: print('line = ', line)
21             w = line.split()
22             if df:
23                 print('w = ', w)
24                 
25             for v in w:
26                 if df:
27                     print('v = ', v)
28                     print('total = ', total)
29                     print('diff_total = ', diff_total)
30                     print('quo_total = ', quo_total)
31                     print('prev_d = ', prev_d)
32                     
33                 #数値でない場合はエラー
34                 if v.isdecimal() == False:
35                     print('数値以外が指定されました：' + v)
36                 else:
37                     #数値化
38                     d = int(v)
39                     # 0 から 99 ではない場合はエラー
40                     if 0 <= d <= 99:
41                         # 合計を計算
42                         total += d
43                         # 前の値との差分の絶対値の合計を計算
44                         diff_total += abs(d - prev_d)
45                         # 前の値との商の合計を計算
46                         if prev_d == 0:
47                             quo_total += d
48                         else:
49                             quo_total += d / prev_d
50                             
51                         prev_d = d
52                     else:
53                         print('範囲外の数値が指定されました：' + v)
54 
55                 if df:
56                     print('total = ', total)
57                     print('diff_total = ', diff_total)
58                     print('quo_total = ', quo_total)
59                     print('prev_d = ', prev_d)
60 
61     # 全行読んだら、結果出力
62     print('合計：' + str(total))
63     print('差の合計：' + str(diff_total))
64     print('商の合計：' + str(quo_total))
65     print('=== Finish case4 ===')
66 
67 
68 # メイン
69 if __name__ == "__main__":
70     case4()
