Тригонометрия в Python - PullRequest
0 голосов
/ 06 июня 2018

Я сделал этот калькулятор, чтобы попытаться вычислить тригонометрию в Python.Я только начал изучать, как использовать эту программу, и я так и не смог найти ничего, что имеет для меня смысл.Проблема в том, что я продолжаю получать разные ответы на те, которые появляются на моем научном калькуляторе.

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'))

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Все тригонометрические функции из модуля math требуют, чтобы их аргументы были в радианах, а не в градусах.Вы можете использовать math.radians для преобразования.

import math

degrees = 90
radians = math.radians(degrees)

print(math.sin(radians)) # 1.0
0 голосов
/ 06 июня 2018

Функции триггера Python предполагают, что ввод в радианах, а вы вводите градусы.

Сначала преобразуйте свои градусы в радианы, умножив degrees на math.pi/180.0 и посмотрите, будут ли они лучше.

...