python - - 不支持的操作数类型:'float' 和 'tuple' - 有趣的错误
问题描述
我在“不支持的操作数类型 -: 'float' 和 'tuple'”上方的代码中收到意外错误。我在互联网上研究了解决方案,但找不到。它一定是关于定义的,但我找不到错误在哪里。错误在第 13 行。感谢您的帮助。
from math import pow,sqrt
q=1
Nlist= [1,7,5,9,4,6,4,3,5,8,3,10,9]
aplist=[0,1,0,1,0,1,0,0,0,1,0,1,1]
bplist=[0,0,1,1,0,1,0,0,1,0,1,0,1]
cplist=[0,0,1,1,0,0,1,0,0,1,0,1,0]
dplist=[0,1,0,0,1,0,0,1,1,0,0,1,1]
eplist=[1,0,0,0,1,0,1,0,0,1,1,0,0]
ajlist=[0,1,0,0,1,0,0,0,0,0,0,0,0]
for i in range(1,13,1):
A=sqrt(pow((q*Nlist[0]/13-ajlist[0]-aplist[0]),2)+pow((q*Nlist[1]/13-ajlist[1]-aplist[1]),2)
+pow((q*Nlist[2]/13-ajlist[2]-aplist[2]),2)+pow((q*Nlist[3]/13-ajlist[3]-aplist[3]),2)+
pow((q*Nlist[4]/13-ajlist[4]-aplist[4]),2)+pow((q*Nlist[5]/13-ajlist[5]-aplist[5]),2)+
pow((q*Nlist[6]/13-ajlist[6]-aplist[6]),2)+pow((q*Nlist[7]/13-ajlist[7]-aplist[7]),2)+
pow((q*Nlist[8]/13-ajlist[8]-aplist[8]),2)+pow((q*Nlist[9]/13-ajlist[9]-aplist[9]),2)+
pow((q*Nlist[10]/13-ajlist[10]-aplist[10]),2)+
pow((q*Nlist[11]/13-ajlist[11]-aplist[11]),2)+
pow((q*Nlist[12]/13-ajlist[12]-aplist[12]),2))
print("A'nın değeri:",A)
B=sqrt(pow((q*Nlist[0]/13-ajlist[0]-bplist[0]),2)+pow((q*Nlist[1]/13-ajlist[1]-bplist[1]),2)
+pow((q*Nlist[2]/13-ajlist[2]-bplist[2]),2)+pow((q*Nlist[3]/13-ajlist[3]-bplist[3]),2)+
pow((q*Nlist[4]/13-ajlist[4]-bplist[4]),2)+pow((q*Nlist[5]/13-ajlist[5]-bplist[5]),2)+
pow((q*Nlist[6]/13-ajlist[6]-bplist[6]),2)+pow((q*Nlist[7]/13-ajlist[7]-bplist[7]),2)+
pow((q*Nlist[8]/13-ajlist[8]-bplist[8]),2)+pow((q*Nlist[9]/13-ajlist[9]-bplist[9]),2)+
pow((q*Nlist[10]/13-ajlist[10]-bplist[10]),2)+pow((q*Nlist[11]/13-ajlist[11]-bplist[11]),2)+
pow((q*Nlist[12]/13-ajlist[12]-bplist[12]),2))
print("B'nın değeri:",B)
C=sqrt(pow((q*Nlist[0]/13-ajlist[0]-cplist[0]),2)+pow((q*Nlist[1]/13-ajlist[1]-cplist[1]),2)
+pow((q*Nlist[2]/13-ajlist[2]-cplist[2]),2)+pow((q*Nlist[3]/13-ajlist[3]-cplist[3]),2)+
pow((q*Nlist[4]/13-ajlist[4]-cplist[4]),2)+pow((q*Nlist[5]/13-ajlist[5]-cplist[5]),2)+
pow((q*Nlist[6]/13-ajlist[6]-cplist[6]),2)+pow((q*Nlist[7]/13-ajlist[7]-cplist[7]),2)+
pow((q*Nlist[8]/13-ajlist[8]-cplist[8]),2)+pow((q*Nlist[9]/13-ajlist[9]-cplist[9]),2)+
pow((q*Nlist[10]/13-ajlist[10]-cplist[10]),2)+pow((q*Nlist[11]/13-ajlist[11]-cplist[11]),2)+
pow((q*Nlist[12]/13-ajlist[12]-cplist[12]),2))
print("C'nın değeri:",C)
D=sqrt(pow((q*Nlist[0]/13-ajlist[0]-dplist[0]),2)+pow((q*Nlist[1]/13-ajlist[1]-dplist[1]),2)
+pow((q*Nlist[2]/13-ajlist[2]-dplist[2]),2)+pow((q*Nlist[3]/13-ajlist[3]-dplist[3]),2)+
pow((q*Nlist[4]/13-ajlist[4]-dplist[4]),2)+pow((q*Nlist[5]/13-ajlist[5]-dplist[5]),2)+
pow((q*Nlist[6]/13-ajlist[6]-dplist[6]),2)+pow((q*Nlist[7]/13-ajlist[7]-dplist[7]),2)+
pow((q*Nlist[8]/13-ajlist[8]-dplist[8]),2)+pow((q*Nlist[9]/13-ajlist[9]-dplist[9]),2)+
pow((q*Nlist[10]/13-ajlist[10]-dplist[10]),2)+pow((q*Nlist[11]/13-ajlist[11]-dplist[11]),2)+
pow((q*Nlist[12]/13-ajlist[12]-dplist[12]),2))
print("D'nin değeri:",D)
E=sqrt(pow((q*Nlist[0]/13-ajlist[0]-eplist[0]),2)+pow((q*Nlist[1]/13-ajlist[1]-eplist[1]),2)
+pow((q*Nlist[2]/13-ajlist[2]-eplist[2]),2)+pow((q*Nlist[3]/13-ajlist[3]-eplist[3]),2)+
pow((q*Nlist[4]/13-ajlist[4]-eplist[4]),2)+pow((q*Nlist[5]/13-ajlist[5]-eplist[5]),2)+
pow((q*Nlist[6]/13-ajlist[6]-eplist[6]),2)+pow((q*Nlist[7]/13-ajlist[7]-eplist[7]),2)+
pow((q*Nlist[8]/13-ajlist[8]-eplist[8]),2)+pow((q*Nlist[9]/13-ajlist[9]-eplist[9]),2)+
pow((q*Nlist[10]/13-ajlist[10]-eplist[10]),2)+pow((q*Nlist[11]/13-ajlist[11]-eplist[11]),2)+
pow((q*Nlist[12]/13-ajlist[12]-eplist[12]),2))
print("E'nin değeri:",E)
q=q+1
list1=[A,B,C,D,E]
print(min(list1))
if(min(list1)==list1[0]):
print("A atandı.")
elif(min(list1)==list1[1]):
print("B atandı")
elif(min(list1)==list1[2]):
print("C atandı")
elif(min(list1)==list1[3]):
print("D atandı")
elif(min(list1)==list1[4]):
print("E atandı")
if(min(list1)==list1[0]):
ajlist[1]=ajlist[1]+1,
ajlist[3]=ajlist[3]+1,
ajlist[5]=ajlist[5]+1,
ajlist[9]=ajlist[9]+1,
ajlist[11]=ajlist[11]+1,
ajlist[12]=ajlist[12]+1,
print("geldim")
elif(min(list1)==list1[1]):
ajlist[2]=ajlist[2]+1,
ajlist[3]=ajlist[3]+1,
ajlist[5]=ajlist[5]+1,
ajlist[8]=ajlist[8]+1,
ajlist[10]=ajlist[10]+1,
ajlist[12]=ajlist[12]+1,
elif(min(list1)==list1[2]):
ajlist[2]=ajlist[2]+1,
ajlist[3]=ajlist[3]+1,
ajlist[6]=ajlist[6]+1,
ajlist[9]=ajlist[9]+1,
ajlist[11]=ajlist[11]+1,
elif(min(list1)==list1[3]):
ajlist[1]=ajlist[1]+1,
ajlist[4]=ajlist[4]+1,
ajlist[7]=ajlist[7]+1,
ajlist[8]=ajlist[8]+1,
ajlist[11]=ajlist[11]+1,
ajlist[12]=ajlist[12]+1,
elif(min(list1)==list1[4]):
ajlist[0]=ajlist[0]+1,
ajlist[4]=ajlist[4]+1,
ajlist[6]=ajlist[6]+1,
ajlist[9]=ajlist[9]+1,
ajlist[10]=ajlist[10]+1,
我在“不支持的操作数类型 -: 'float' 和 'tuple'”上方的代码中收到意外错误。我在互联网上研究了解决方案,但找不到。它一定是关于定义的,但我找不到错误在哪里。错误在第 13 行。感谢您的帮助。
解决方案
实际上我无法重现确切的问题。但是,您的代码非常混乱。看来您走在正确的轨道上,但未能做到正确。编码
for i in range(1,13,1):
A=sqrt(pow((q*Nlist[0]/13-ajlist[0]-aplist[0]),2)+pow((q*Nlist[1]/13-ajlist[1]-aplist[1]),2)
+pow((q*Nlist[2]/13-ajlist[2]-aplist[2]),2)+pow((q*Nlist[3]/13-ajlist[3]-aplist[3]),2)+
pow((q*Nlist[4]/13-ajlist[4]-aplist[4]),2)+pow((q*Nlist[5]/13-ajlist[5]-aplist[5]),2)+
pow((q*Nlist[6]/13-ajlist[6]-aplist[6]),2)+pow((q*Nlist[7]/13-ajlist[7]-aplist[7]),2)+
pow((q*Nlist[8]/13-ajlist[8]-aplist[8]),2)+pow((q*Nlist[9]/13-ajlist[9]-aplist[9]),2)+
pow((q*Nlist[10]/13-ajlist[10]-aplist[10]),2)+
pow((q*Nlist[11]/13-ajlist[11]-aplist[11]),2)+
pow((q*Nlist[12]/13-ajlist[12]-aplist[12]),2))
可以短至
sum_of_powers = 0
for i in range(13):
sum_of_powers += pow((q * Nlist[i] / 13 - ajlist[i] - aplist[i]), 2)
A = sqrt(sum_of_powers)
类似的事情重复了B
,所以你应该把它变成一个函数,而不是复制/粘贴整个事情:
def root_of_powers(plist:list):
sum_of_powers = 0
for i in range(13):
sum_of_powers += pow((q * Nlist[i] / 13 - ajlist[i] - plist[i]), 2)
return sqrt(sum_of_powers)
并像使用它一样
A = root_of_powers(aplist)
B = root_of_powers(bplist)
...
删除所有重复代码后,a) 更容易发现错误,b) 更容易纠正错误,因为您不需要在所有复制的地方更正它。
推荐阅读
- javascript - 如何根据 React/JS 中的另一个数组修改数组的每个对象的属性?
- javascript - 我必须点击两次才能更新我的状态
- python - 我想打印一个数字的质因数,例如当我输入 120 时,它会得到 2 2 2 3 5
- r - 如何提取两个 DateTime 列的月份并仅使用提取的月份创建两个新列?
- smtp - 在启用 StartTLS 选项的情况下从 Keycloak 发送电子邮件时出错
- javascript - 迭代枚举时如何排除命名空间函数?
- docker - MailHog 未使用 GoMail 进行身份验证
- windows - gcloud auth application-default print-access-token 给出文件未找到错误
- node.js - 如何使 https 在 nodejs 和 vue.js 上工作
- python - 使用 Bokeh 作为库时访问静态目录