answer6_2.py

total = 0
count = 0
while True:
    s = input("実数?[Enter で終了]")
    if not s:
        break
    total += float(s)
    count += 1
if count:
    print(f"合計は{total}、平均は{total/count}です!")
else:
    print("入力がありませんでした")

# 章末問題 6章【2】解答例
#
# 合計を入れる変数としてtotal、
# 入力された回数を入れる変数としてcountを用意します(1~2行目)。
# 3行目から始まる無限ループで、入力された実数を
# totalに足し込み(7行目)、入力回数をインクリメントします(8行目)。
# ただEnterが押されるとsが空文字列になるので、
# 5行目の条件式が真になり(空文字列は偽で、式が「not 偽」なので)、
# ループをブレークして(6行目)結果を出力します(9行目~)。
#
# データが入力されずにいきなりEnterが押されると、
# countがゼロのままループを抜けます。
# この場合に平均を求めようとしてcountで割ってしまうと(10行目)
# ゼロ除算エラーになるので、9行目からのif文でそれを避けています。