python 3中的矢量脚本

时间:2013-12-17 20:39:55

标签: python json vector

我正在编写一个代码来计算一些矢量操作我的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")

1 个答案:

答案 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