用shell计算sinx的值

各位大佬救救孩子吧!

题目给出了sinx的泰勒公式展开式, 要求脚本接受两个参数 x 与 y(两个都为正数)显示sinx的值

其中y 是精度值,即最后一项|t|<y

最终的结果包括最后一项

人家公式都给你了,剩下的就是写一个循环,每次判断第i个结果绝对值是都小于y就是了

import math

def factorial(n):   # 计算n的阶乘
    if n == 1:
        return 1
    else:
        return n*factorial(n-1)

def sinx(x, y):
    items = []
    i = 0
    while True:
        item = (-1)**i * x**(2*i+1) / factorial(2*i+1)
        if abs(item)>y:
            items.append(item)
            i += 1
        else:
            #print(items)
            return sum(items)
    
x = float(input('请输入参数x:'))   # math.pi/6=0.5235987755982988=30°
y = float(input('请输入参数y:'))
sinx(x, y)

math.pi是Π,可以通过Π来验证jiimport math,可以通过打印items来验证精度值