Из того, что я понял, вы читаете значения от energy meter (counter)
в конце каждого месяца. Вы должны рассчитать разницу между тем, что вы читаете в конце и начале каждого месяца. Это то, что вы потребляли в этом месяце. Затем умножьте то, что вы потребляете с правильным часовым коэффициентом kwhour/kwhour2 и суммируете каждый раз. Я все еще не понимал, что он добавляет его каждый раз (но он мог объяснить). Вам не нужно bill += output1 + output2
u, чтобы добавить вещи, которые вам не нужно добавлять, вот почему вы добавили if condition
.
'bill= output1+output2'
не решает проблему. Представьте себе, если u цикл и получил в случае <=1000
(Update output1), в следующий раз u попал в регистр >1000
(Update output2). В третий раз, если у вас получится в любом случае (скажем, для обновления 'output1'), u'r собирается добавить устаревшее значение 'output2' для выставления счета. Вы должны добавить output1/2 отдельно в каждом блоке (bill+=output1/bill+=output2
)
bill = 0
months = 12
kwhour = .06
kwhour2 = .08
output1=0
output2=0
for m in range(1, months+1):
month_start = int(input('month ' + str(m) + ' starting reading: '))
month_end = int(input('month ' + str(m) + ' ending reading: '))
if (month_end-month_start) <= 1000:
output1 = (month_end-month_start) * kwhour
#output1 += 1
bill+=output1
else:
output2 = (month_end-month_start) * kwhour2
#output2 += 1
bill+=output2
#bill += output1 + output2 You don't need this, u gonna re-adding things
print('Your yearly bill is: ', bill)
if bill < 500:
print('Thanks for saving so much energy')
Каких результатов вы нужны? – chepner
Кроме того, следует ли «kwhour2» быть ставкой для * всех кВтч, если общая сумма составляет более 1000 * или только для части более 1000 кВт-ч? – jonrsharpe
'в течение нескольких месяцев в диапазоне (1, месяцев + 1)' делает странную вещь: он переопределяет «месяцы» во время итерации. Попробуйте что-то вроде 'для продолжительности в диапазоне (1, месяцев + 1)' и посмотрите, где вам нужно то, что в ваших формулах. – 9000