A scientific calculator is a type of calculator that allows users to perform advanced mathematical calculations. While Python has a built-in math library that provides access to many mathematical functions, creating a program that can perform complex calculations is not always a simple task. Fortunately, Python makes it easy to create a scientific calculator that can handle everything from basic arithmetic to advanced trigonometric functions.

The scientific calculator in Python that we will create in this post will have the following features:

  • Addition
  • Subtraction
  • Multiplication
  • Division
  • Exponentiation
  • Square Root
  • Logarithm
  • Sine
  • Cosine
  • Tangent

We will use a simple command line interface to prompt the user to input the desired operation and the required values. The program will then perform the calculation and display the result.

Creating a Scientific Calculator in Python

To create a scientific calculator in Python, we will use the math library to perform advanced mathematical calculations. We will define a function scientific_calculator() that will display a menu of available operations and prompt the user to input a choice. Depending on the user’s choice, the function will perform the corresponding operation using Python’s built-in math library and print the result.

import math

def scientific_calculator():
    print('Scientific Calculator\n')
    print('1. Addition')
    print('2. Subtraction')
    print('3. Multiplication')
    print('4. Division')
    print('5. Exponentiation')
    print('6. Square Root')
    print('7. Logarithm')
    print('8. Sine')
    print('9. Cosine')
    print('10. Tangent')
    print('11. Exit')
    
    while True:
        try:
            choice = int(input('\nEnter your choice: '))
            if choice == 1:
                num1 = float(input('Enter first number: '))
                num2 = float(input('Enter second number: '))
                print('Result: ', num1 + num2)
            elif choice == 2:
                num1 = float(input('Enter first number: '))
                num2 = float(input('Enter second number: '))
                print('Result: ', num1 - num2)
            elif choice == 3:
                num1 = float(input('Enter first number: '))
                num2 = float(input('Enter second number: '))
                print('Result: ', num1 * num2)
            elif choice == 4:
                num1 = float(input('Enter first number: '))
                num2 = float(input('Enter second number: '))
                print('Result: ', num1 / num2)
            elif choice == 5:
                num1 = float(input('Enter base: '))
                num2 = float(input('Enter exponent: '))
                print('Result: ', num1 ** num2)
            elif choice == 6:
                num = float(input('Enter a number: '))
                print('Result: ', math.sqrt(num))
            elif choice == 7:
                num = float(input('Enter a number: '))
                print('Result: ', math.log10(num))
            elif choice == 8:
                num = float(input('Enter a number in degrees: '))
                print('Result: ', math.sin(math.radians(num)))
            elif choice == 9:
                num = float(input('Enter a number in degrees: '))
                print('Result: ', math.cos(math.radians(num)))
            elif choice == 10:
                num = float(input('Enter a number in degrees: '))
                print('Result: ', math.tan(math.radians(num))
            elif choice == 11:
                break
            else:
                print('Invalid choice. Please choose a number from 1 to 11.')
        except ValueError:
            print('Invalid input. Please enter a number.\n')

In this program, we use a while loop to keep prompting the user for choices until they choose to exit. We use the try-except block to handle any invalid inputs that the user might provide.

The math library provides functions to perform advanced mathematical calculations like square root, logarithm, and trigonometric functions. In the code, we use math.sqrt() to calculate the square root of a number, math.log10() to calculate the logarithm with base 10 of a number, and math.sin(), math.cos(), and math.tan() to calculate the sine, cosine, and tangent of an angle in radians.

This code defines a function scientific_calculator() that displays a menu of available operations and prompts the user to enter a choice. Depending on the user’s choice, the function performs the corresponding operation using Python’s built-in math library and prints the result.

You can call the scientific_calculator() function in your Python code to run the calculator. For example:

scientific_calculator()

This will display the menu and allow the user to perform the desired calculations.

Output

Here is an example of what the console output might look like for some of the operations:

Scientific Calculator

1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exponentiation
6. Square Root
7. Logarithm
8. Sine
9. Cosine
10. Tangent
11. Exit

Enter your choice: 1
Enter first number: 10
Enter second number: 20
Result:  30.0

Enter your choice: 6
Enter a number: 25
Result:  5.0

Enter your choice: 9
Enter a number in degrees: 45
Result:  0.7071067811865476

In this example, the user first chooses to perform addition, then enters the numbers 10 and 20. The program performs the addition and displays the result, which is 30.0. Then, the user chooses to calculate the square root of 25, and the program correctly displays the result, which is 5.0. Finally, the user chooses to calculate the cosine of 45 degrees, and the program correctly displays the result, which is 0.7071067811865476.

Conclusion

This is how you create a simple scientific calculator in Python using the math library. We used a command line interface to prompt the user for inputs and performed calculations based on the user’s choices. This scientific calculator can be expanded upon with more functions and features, making it a useful tool for engineers, scientists, and mathematicians.