Here we will be making a simple calculator in which we can perform basic arithmetic operations like addition, subtraction, multiplication, or division.
Python Program to Make a Simple Calculator
Create a simple calculator which can perform basic arithmetic operations like addition, subtraction, multiplication, or division depending upon the user input. Approach :
User chooses the desired operation. Options 1, 2, 3, and 4 are valid.
Two numbers are taken and an if…elif…else branching is used to execute a particular section.
Using functions add(), subtract(), multiply() and divide() evaluate respective operations.
Python3
# Python program for simple calculator # Function to add two numbers def add(num1, num2): return num1 + num2 # Function to subtract two numbers def subtract(num1, num2): return num1 - num2 # Function to multiply two numbers def multiply(num1, num2): return num1 * num2 # Function to divide two numbers def divide(num1, num2): return num1 / num2 print ( "Please select operation -\n" \ "1. Add\n" \ "2. Subtract\n" \ "3. Multiply\n" \ "4. Divide\n" ) # Take input from the user select = int ( input ( "Select operations form 1, 2, 3, 4 :" )) number_1 = int ( input ( "Enter first number: " )) number_2 = int ( input ( "Enter second number: " )) if select = = 1 : print (number_1, "+" , number_2, "=" , add(number_1, number_2)) elif select = = 2 : print (number_1, "-" , number_2, "=" , subtract(number_1, number_2)) elif select = = 3 : print (number_1, "*" , number_2, "=" , multiply(number_1, number_2)) elif select = = 4 : print (number_1, "/" , number_2, "=" , divide(number_1, number_2)) else : print ( "Invalid input" ) |
Output:
Please select operation -
1. Add
2. Subtract
3. Multiply
4. Divide
Select operations form 1, 2, 3, 4 : 1
Enter first number : 15
Enter second number : 14
15 + 14 = 29
Python Program to Make GUI Calculator
GUI of a Calculator Which will help to add, subtract , Multiply and divide
Python
# pip install tkinter import tkinter as tk import tkinter.messagebox from tkinter.constants import SUNKEN window = tk.Tk() window.title( 'Calculator-GeeksForGeeks' ) frame = tk.Frame(master = window, bg = "skyblue" , padx = 10 ) frame.pack() entry = tk.Entry(master = frame, relief = SUNKEN, borderwidth = 3 , width = 30 ) entry.grid(row = 0 , column = 0 , columnspan = 3 , ipady = 2 , pady = 2 ) def myclick(number): entry.insert(tk.END, number) def equal(): try : y = str ( eval (entry.get())) entry.delete( 0 , tk.END) entry.insert( 0 , y) except : tkinter.messagebox.showinfo( "Error" , "Syntax Error" ) def clear(): entry.delete( 0 , tk.END) button_1 = tk.Button(master = frame, text = '1' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 1 )) button_1.grid(row = 1 , column = 0 , pady = 2 ) button_2 = tk.Button(master = frame, text = '2' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 2 )) button_2.grid(row = 1 , column = 1 , pady = 2 ) button_3 = tk.Button(master = frame, text = '3' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 3 )) button_3.grid(row = 1 , column = 2 , pady = 2 ) button_4 = tk.Button(master = frame, text = '4' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 4 )) button_4.grid(row = 2 , column = 0 , pady = 2 ) button_5 = tk.Button(master = frame, text = '5' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 5 )) button_5.grid(row = 2 , column = 1 , pady = 2 ) button_6 = tk.Button(master = frame, text = '6' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 6 )) button_6.grid(row = 2 , column = 2 , pady = 2 ) button_7 = tk.Button(master = frame, text = '7' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 7 )) button_7.grid(row = 3 , column = 0 , pady = 2 ) button_8 = tk.Button(master = frame, text = '8' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 8 )) button_8.grid(row = 3 , column = 1 , pady = 2 ) button_9 = tk.Button(master = frame, text = '9' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 9 )) button_9.grid(row = 3 , column = 2 , pady = 2 ) button_0 = tk.Button(master = frame, text = '0' , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( 0 )) button_0.grid(row = 4 , column = 1 , pady = 2 ) button_add = tk.Button(master = frame, text = "+" , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( '+' )) button_add.grid(row = 5 , column = 0 , pady = 2 ) button_subtract = tk.Button( master = frame, text = "-" , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( '-' )) button_subtract.grid(row = 5 , column = 1 , pady = 2 ) button_multiply = tk.Button( master = frame, text = "*" , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( '*' )) button_multiply.grid(row = 5 , column = 2 , pady = 2 ) button_div = tk.Button(master = frame, text = "/" , padx = 15 , pady = 5 , width = 3 , command = lambda : myclick( '/' )) button_div.grid(row = 6 , column = 0 , pady = 2 ) button_clear = tk.Button(master = frame, text = "clear" , padx = 15 , pady = 5 , width = 12 , command = clear) button_clear.grid(row = 6 , column = 1 , columnspan = 2 , pady = 2 ) button_equal = tk.Button(master = frame, text = "=" , padx = 15 , pady = 5 , width = 9 , command = equal) button_equal.grid(row = 7 , column = 0 , columnspan = 3 , pady = 2 ) window.mainloop() |
Output:
Time complexity:
The time complexity of this calculator depends on the number of operations involved in the calculation. The basic operations such as addition, subtraction, multiplication and division take O(1) time complexity. For more complex calculations involving multiple operations, the time complexity will be higher.
Space complexity:
The space complexity of this calculator is O(1). This is because the calculator only needs to store the user input and the result of the calculation which can be done in a fixed amount of memory.