Open In App

# Python Program to Make a Simple Calculator

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. Add2. Subtract3. Multiply4. DivideSelect operations form 1, 2, 3, 4 : 1Enter first number : 15Enter second number : 1415 + 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.