Reputation: 3
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
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
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