python – TypeError:需要一个float

无法发布图像,因此:a [i] = {( – 1)^(i 1)* sin(x)* ln(x)} / {i ^ 2 *(i 1)!}

任务:
需要找到a1,a2,…,an.
n是自然而且是给定的.

这就是我尝试这样做的方式:

import math
a=[]
k=0
p=0
def factorial(n):
   f=1
   for i in range(1,n+1):
     f=f*i
   return f

def narys(n):
    x=input('input x: ') #x isn't given by task rules, so i think that is error else.
    float(x)
    k=(math.pow(-1,n+1)*math.sin(x)*math.log10(n*x))/(n*n*factorial(n+1))
    a.append=k

n=int(input('input n: '))
narys(n)
for i in a:
   print(a[p])
   p=p+1

解决方法:

好像你正在使用Python 3.x版本.输入调用的结果是从键盘获取的字符串,您将其传递给math.sin(…)函数. float(x)将x转换为float但不将转换后的值存储在任何位置,因此更改:

float(x)

至:

x = float(x)

获得正确的代码行为.

上一篇:c – 如何检查两个类型是否来自同一个模板类


下一篇:java – 如何序列化接口?