我正在编写一个代码来计算一些矢量操作我的scalarproduct脚本不起作用:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\A-PC\Desktop\Kopie von vektorrechnung.py", line 28, in <module>
D = D + my_list1[i] * my_list2[i] #this part prints an Error-Code
TypeError: can only concatenate list (not "int") to list
第一个块没有问题,我认为问题是json调用。我不明白,为什么第一个块工作,第二个块失败。是否在json创建的列表上定义了mupliplication?
这是我的代码:
import json
str_list1 = input("Geben Sie den 1. Vektor in der Form [x, y, z] ein: ") #enter 3 coordinates
my_list1 = json.loads(str_list1) #build vector as list in R3
print(my_list1)
str_list2 = input("Geben Sie den 2. Vektor in der Form [x, y, z] ein: ")# ""
my_list2 = json.loads(str_list2) #""
print(my_list2)
print("Welche Berechnung möchten Sie ausführen ?") #choose case
print ("[v]ektoraddition") #vector addition
print ("[s]kalarprodukt") #scalarproduct
Fall = input() # input first char
if Fall == "v": #when input = "v"
C=[]
for i in range(3):
C+=[my_list1[i] + my_list2[i]]
print("Das Ergebnis lautet: ")
print(C) #this part works
elif Fall == "s": #when input = "s"
D=[]
for i in range(3):
D = D + my_list1[i] * my_list2[i] #this part prints an Error-Code
print("Das Skalarprodukt beträgt: ")
print(D)
else:
print("Ungültiger Eingabewert")
答案 0 :(得分:1)
代码中的问题是,正如错误所说,您正在尝试将列表与int连接起来。只有列表可以与另一个列表连接。如果要添加元素,则需要使用.append(..)
函数
for i in range(3):
D.append(my_list1[i] * my_list2[i])
print(D)
从你的代码中,我可以看出你正试图在两个列表之间做一个点积。在这种情况下,你可以像上面那样sum(D)
,或者@Steve在评论中说,做类似下面的事情:
D = 0
for i in range(3):
D += my_list1[i] * my_list2[i]
print D