FusionDrive21
FusionDrive21

Reputation: 3

Trigonometry in Python

I made this calculator to try and calculate trigonometry in python. I've only just started learning how to use this program and I haven't been able to find anything so far that makes sense to me. The problem with this is that I keep getting different answers to those that come up on my scientific calculator.

while True: 

    print('type "sine1" to find the value of the Opposite')
    print('type "sine2" to find the value of the Hypotenuse')
    print('type "cosine1" to find the value of the Adjacent')
    print('type "cosine2" to find the value of the Hypotenuse')
    print('type "tangent1" to find the value of the Opposite')
    print('type "tangent2" to find the value of the Adjacent')
    user_input = input(": ")

    from math import sin, cos, tan


    if user_input == 'sine1':
        degrees = float(input('Enter the degrees: '))
        hypotenuse = float(input('Enter the value of the hypotenuse: '))
        result = str(hypotenuse * sin(degrees))
        print('The answer is ' + result)
        print(input('Press enter to quit: '))
        break

    elif user_input == 'sine2':
        degrees = float(input('Enter the degrees: '))
        opposite = float(input('Enter the value of the opposite: '))
        result = str(opposite / sin(degrees))
        print('The answer is ' + result)
        print(input('Press enter to quit: '))
        break

    elif user_input == 'cosine1':
        degrees = float(input('Enter the degrees: '))
        hypotenuse = float(input('Enter the value of the hypotenuse: '))
        result = str(hypotenuse * cos(degrees))
        print('The answer is ' + result)
        print(input('Press enter to quit: '))
        break

    elif user_input == 'cosine2':
        degrees = float(input('Enter the degrees: '))
        adjacent = float(input('Enter the value of the adjacent: '))
        result = str(adjacent / cos(degrees))
        print('The answer is ' + result)
        print(input('Press enter to quit: '))
        break

    elif user_input == 'tangent1 ':
        degrees = float(input('Enter the degrees: '))
        adjacent = float(input('Enter the value of the adjacent: '))
        result = str(hypotenuse * tan(degrees))
        print('The answer is ' + result)
        print(input('Press enter to quit: '))
        break

    elif user_input == 'tangent2':
        degrees = float(input('Enter the degrees: '))
        opposite = float(input('Enter the value of the opposite: '))
        result = str(adjacent / cos(degrees))
        print('The answer is ' + result)
        print(input('Press enter to quit: '))
        break

    else:
        print('invalid input, please close the program and try again... maybe learn how to spell first :P')
        print(input('press enter to quit'))

Upvotes: 0

Views: 11898

Answers (2)

Olivier Melançon
Olivier Melançon

Reputation: 22294

All trigonometric function from the math module require their argument to be in radians, not in degrees. You can use math.radians to do the conversion.

import math

degrees = 90
radians = math.radians(degrees)

print(math.sin(radians)) # 1.0

Upvotes: 5

tom10
tom10

Reputation: 69182

Python's trig functions assume that the input is in radians, and you're entering degrees.

First convert your degrees to radians by multiplying degrees by math.pi/180.0 and see if those match better.

Upvotes: 2

Related Questions