教科書のチュートリアル「Python 2nd edition から始める」に従っていますが、IDLE 3.2 でこの演習でトレースバックを取得しています。問題を理解できないようです。販売数を入力してから、「sales.txtに書き込まれたデータ」と表示される販売額を1つだけ入力できます。その後、2 日目のプロンプトが表示されますが、金額を入力するとトレースバックが発生します。
行 118、メインの sales_file.write(str(sales) + '\n') ValueError: 閉じたファイルに対する I/O 操作。
コード:
def main():
num_days = int(input('For how many days do ' + \
'you have sales? '))
sales_file = open('sales.txt', 'w')
for count in range(1, num_days + 1):
sales = float(input('Enter the sales for day #' + \
str(count) + ': '))
sales_file.write(str(sales) + '\n')
sales_file.close()
print('Data written to sales.txt.')
main()