DEV Community


Day 3 of 100DaysOfCode: Python Program To Calculate Electric Bill

Durga Pokharel
A mathematics student learning to code.
・1 min read

This is my 3rd day of #100daysofcode. I learned alots of thing about python basis with the help of Goggle, youtube and Coursera.
Today I learned specially about looping, List, file handling, function etc. I also did some course of coursera in the topic python data structure. Here is a code of mine which I used to calculate the amount of money purchasing for electric bill. In this code I used multiple if else statements for multiple conditions. There are different amount according to units consumed criteria.

# python program to calculate electric bill
units = int(input('Please enter the number of unit you consumed: '))
if(units < 50):
    amount = units * 2.60
    surcharge = 25
elif(units <= 100):
    amount = 130 + ((units - 50)*3.25)
    surcharge = 35
elif(units <= 200):
    amount = 130 + 162.50 + ((units - 100)* 5.26)
    surcharge = 45
    amount = 130 + 162.50 + 526 + ((units - 200)*8.45)
    surcharge = 75
total = amount + surcharge 
print('\n Electricity Bill = %.2f' % total)
Enter fullscreen mode Exit fullscreen mode

Discussion (5)

nitinkatkam profile image
Nitin Reddy

Kudos to you for progressing so much in only 3 days!

On the first line of your program, where you are converting the input into an integer, consider adding a check for isnumeric(). The reason for this is if the user enters invalid input (Eg. an alphabet), the program will exit with a ValueError exception. You will most likely learn about exception handling later.

Here's an example:

input_text = input('Enter a number')
if input_text.isnumeric():
  #write your logic here
  print('The input was invalid')
Enter fullscreen mode Exit fullscreen mode

You can take the input check further - if the user enters a decimal number, converting the input to an integer will fail with a ValueError exception.

nitinkatkam profile image
Nitin Reddy

UPDATE: I searched and found a ".isdigit()" method for strings which helps check if the string contains a positive integer. You can use ".isdigit()" instead of ".isnumeric()".

To allow negative numbers (Eg. when the electric company is unable to get the meter reading and uses an average-unit-count to bill you for the month, the next number of units can be in the negative), you can use an "or" in the condition with input_text.starts_with("-") and input_text[1:].isdigit()

iamdurga profile image
Durga Pokharel Author

Thank you for sharing.

iamdurga profile image
Durga Pokharel Author

Thank you for suggestion

otumianempire profile image
Otu Michael • Edited

Did well on the 3rd day..