gpt4 book ai didi

python - 类型错误:** 或 pow() 不支持的操作数类型: 'list' 和 'int'

转载 作者:行者123 更新时间:2023-11-28 22:46:48 33 4
gpt4 key购买 nike

我正在尝试从前一个函数中获取值并在另一个函数中使用。这是我的第一门编程课和语言,我完全迷路了。我想出了如何从 aSTList 中获取变量并将它们放入函数距离中,但是现在 Python 告诉我我不能在方程式中使用这些变量,因为它们现在在列表中?是这个意思吗?我也只是打印列表以查看它们是否正在运行。这是我的两个函数,这些函数都在我的主函数中定义。我正在获取这些列表并最终将它们放入文件中,但我需要先弄清楚为什么方程式不起作用。谢谢!

def readast():

astlist = []
for j in range(15):
list1 = []

for i in range(3):
x = random.randint(1,1000)
y = random.randint(1,1000)
z = random.randint(1,1000)
list1.append([x,y,z])
astlist.append(list1)
print(astlist)
return astlist

def distance(astlist):

distlist = []
for row in range(len(astlist)):
x, y, z = astlist[row]
x1 = x**2
y2 = y**2
z2 = z**2
equation = math.sqrt(x+y+z)
distlist.append(equation)
print(distlist)
return distlist

最佳答案

变量aSTList 是一个列表。您多次向它添加 list1 这也是一个列表。但是,您每次都会向 list1 添加一个列表:list1.append([x,y,z])。所以最终 aSTList 是一个包含多个列表的列表,每个列表包含一个包含三个整数的列表。

因此,当您编写 x,y,z=aSTList[row] 变量时,xyz 实际上是列表,而不是整数。这意味着您正在尝试计算 x**2x 是一个列表,而不是一个数字。这就是为什么 Python 会给出错误消息,因为 ** 不支持将列表提升为幂。

我不确定你想用所有这些列表完成什么,但你应该更改代码,以便你只尝试计算数字的 2 次方而不是列表。

关于python - 类型错误:** 或 pow() 不支持的操作数类型: 'list' 和 'int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083622/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com