类型错误:需要一个浮点数

8 投票
1 回答
83489 浏览
提问于 2025-04-17 16:37

无法上传图片,所以我写了这个公式: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

1 个回答

7

看起来你在使用Python 3.x版本。当你调用input时,它会从键盘获取一个字符串,然后你把这个字符串传给math.sin(...)函数。float(x)可以把x转换成float类型,但它并不会把转换后的值存储起来,所以你需要把:

float(x)

改成:

x = float(x)

这样才能让你的代码正常工作。

撰写回答