Python 谁能告诉我为什么我';我得到了归属错误';str';对象没有属性';雷亚尔'; def getFFtMag(数据): maglist=[] 对于范围(0,len(数据))内的x: dataVal=data[x] firstVal=dataVal.real secondVal=dataVal.imag mag=math.sqrt(firstVal*firstVal+secondVal*secondVal) maglist.append(mag) 返回杂志列表 >>>getFFtMag(“25-Copy.xlsx”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 getFFtMag(“25-Copy.xlsx”) getFFtMag中第5行的文件“” firstVal=dataVal.real AttributeError:“str”对象没有属性“real” >>>

Python 谁能告诉我为什么我';我得到了归属错误';str';对象没有属性';雷亚尔'; def getFFtMag(数据): maglist=[] 对于范围(0,len(数据))内的x: dataVal=data[x] firstVal=dataVal.real secondVal=dataVal.imag mag=math.sqrt(firstVal*firstVal+secondVal*secondVal) maglist.append(mag) 返回杂志列表 >>>getFFtMag(“25-Copy.xlsx”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 getFFtMag(“25-Copy.xlsx”) getFFtMag中第5行的文件“” firstVal=dataVal.real AttributeError:“str”对象没有属性“real” >>>,python,attributes,Python,Attributes,有人能告诉我为什么我的代码错了吗?附加的错误似乎正在出现。我是python新手,正在学习发生的事情。我输入的数据有问题吗?谢谢。您试图从文件中读取数据,而不是首先将其解析为复数格式。从文件中读取的数据将是字符串或类似字节的对象,具体取决于您打开文件的方式。但是在这里,你甚至还没有打开文件 为了告诉您如何具体解决此问题,我们需要查看您尝试操作的文件的格式。您正在调用getFFtMag函数,并使用字符串(显然是文件名)作为参数。但是,此函数需要一个列表(或者,通常是iterable),其中的元素具有

有人能告诉我为什么我的代码错了吗?附加的错误似乎正在出现。我是python新手,正在学习发生的事情。我输入的数据有问题吗?谢谢。

您试图从文件中读取数据,而不是首先将其解析为复数格式。从文件中读取的数据将是字符串或类似字节的对象,具体取决于您打开文件的方式。但是在这里,你甚至还没有打开文件


为了告诉您如何具体解决此问题,我们需要查看您尝试操作的文件的格式。

您正在调用
getFFtMag
函数,并使用字符串(显然是文件名)作为参数。但是,此函数需要一个列表(或者,通常是iterable),其中的元素具有
.real
.imag
属性。字符串的元素是一个字符串,字符串没有这些属性-复数有。您需要读入文件的内容,并以某种方式将其转换为复杂内容

您向函数传递的是字符串,而不是带有
.real
.imag
的数据,由于字符串没有这些字段,因此会出现相应的错误


你必须先阅读文件的内容。我建议做一个

你打算做什么dataVal.real?错误告诉了你什么?
data[x]
必须是字符串,你必须将它设置为
int
最有可能的是
data[x]
的值是字符串,因此没有
real
imag
属性。要访问这些属性,必须先将值大小写为整数或浮点
dataVal=int(data[x])
您需要向我们展示
data
的声明,因为这是引发错误的变量。我认为您会像在中一样被否决这个问题。看,有没有办法让你看一下文件的格式?这只是一个包含数据的大型excel文件,除了第1行是解释各个列中数据的字符串。有没有办法读入我文件的内容?你知道使用什么代码吗?开始学习语言基础可能是个好主意。网上有很多免费教程。
def getFFtMag(data):
    maglist = []
    for x in range(0, len(data)):
        dataVal = data[x]
        firstVal = dataVal.real
        secondVal = dataVal.imag
        mag = math.sqrt(firstVal*firstVal + secondVal*secondVal)
        maglist.append(mag)
    return maglist

>>> getFFtMag("25 - Copy.xlsx")
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    getFFtMag("25 - Copy.xlsx")
  File "<pyshell#10>", line 5, in getFFtMag
    firstVal = dataVal.real
AttributeError: 'str' object has no attribute 'real'
>>>