不同形式的python打印向量
编写一个名为“vectormath.py”的程序,以进行三维基本矢量计算: 此外,点积和归一化 我的映射函数出错 样本输入:不同形式的python打印向量,python,function,if-statement,module,mapping,Python,Function,If Statement,Module,Mapping,编写一个名为“vectormath.py”的程序,以进行三维基本矢量计算: 此外,点积和归一化 我的映射函数出错 样本输入: Enter vector A: 1 3 2 Enter vector B: 2 3 0 样本输出 A+B = [3, 6, 2] A.B = 11 |A| = 3.74 |B| = 3.61 代码: 替换 vector\u A=map(int,vector\u A)withvector\u A=list(map(int,vector\u A)) 及 vec
Enter vector A:
1 3 2
Enter vector B:
2 3 0
样本输出
A+B = [3, 6, 2]
A.B = 11
|A| = 3.74
|B| = 3.61
代码:
替换
vector\u A=map(int,vector\u A)
withvector\u A=list(map(int,vector\u A))
及
vector\u B=map(int,vector\u B)
withvector\u B=list(map(int,vector\u B))
这里map(int,vector_A)
返回一个作为迭代器的map对象
list()
获取迭代器并返回代码中所需的列表,以便进行进一步的向量计算
现在,您正在将映射对象
传递给函数addition、Dotproduct和norm
,它们实际上应该是定义的计算的列表
上述更改将贴图对象转换为列表
import math
def addition(a,b):
return[a[0]+b[0] , a[1] + b[1] , a[2] + b[2]]
def Dotproduct(a , b):
return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]
def norm(a):
square = a[0]**2 + a[1]**2 + a[2]**2
return math.sqrt(square)
def main():
vector_A = input("Enter vector A:\n").split(" ")
vector_A = map(int,vector_A)
vector_B = input("Enter vector B:\n").split(" ")
vector_B = map(int, vector_B)
print(addition(vector_A,vector_B))
print(addition(vector_A,vector_B))
print(norm(vector_A))
print(norm(vector_B))
if __name__ == "__main__":
main()