在考生文件夹下有一个文件PY202.py,其中定义了一个包含6个浮点数的一维列表lt1和一个包含3个数的一维列表lt2。 示例如下。 lt1=[0.69,0.292,0.33,0.131,0.61,0.254] lt2=[0.1,0

admin2022-09-10  64

问题 在考生文件夹下有一个文件PY202.py,其中定义了一个包含6个浮点数的一维列表lt1和一个包含3个数的一维列表lt2。
    示例如下。
    lt1=[0.69,0.292,0.33,0.131,0.61,0.254]
    lt2=[0.1,0.8,0.2]
    在…处填写代码,完成如下功能。计算lt1列表与lt2列表的向量内积。两个向量X=[x1,x2,x3]和Y=[y1,y2,y3]的内积计算公式如下。
    k=x1*y1+x2*y2+x3*y3
    将每次计算的两组对应元素的值以及对应元素乘积的累计和k的值显示在屏幕上,格式如下。
    k=0.069,lt2[0]=0.100,lt1[0+0]=0.690
    k=0.303,lt2[1]=0.800,lt1[0+1]=0.292
    k=0.369,lt2[2]=0.200,lt1[0+2]=0.330
    …
    计算方式如下。
    第一步计算第一个k,分为3次累加计算:
    k=lt2[0]*lt1[0+0]
    k=lt2[0]*lt1[0+0]+lt2[1]*lt1[0+1]
    k=lt2[0]*lt1[0+0]+lt2[1]*lt1[0+1]+lt2[2]*lt1[0+2]
    最终得到最后一个k值保存。
    第二步计算第二个k,分为3次累加计算:
    k=lt2[0]*lt1[1+0]
    k=lt2[0]*lt1[1+0]+lt2[1]*lt1[1+1]
    k=lt2[0]*lt1[1+0]+lt2[1]*lt1[1+1]+lt2[2]*lt1[1+2]
    最终得到最后一个k值保存,依照此规律依次计算。
    试题程序
    #请在…处填写一行或多行表达式或语句
    #不得修改其他代码
    img=[0.244,0.832,0.903,0.145,0.26,0.452]
    filter=[0.1,0.8,0.1]
    res=[]
    for i in range(len(img)-2):
      …
      res.appendf(k)
  for r in res:
    print(’{:<10.3f}’.format(r),end=’’)

选项

答案img=[0.244,0.832,0.903,0.145,0.26,0.452] filter=[0.1,0.8,0.1] res=[] for i in range(len(img)-2): k=0 for j in range(len(filter)): k+=filter[j]*img[j+i] print("k={:.3f},filter[{}]={:.3f},img) [{}{}{}]={:.3f}".format(k,j,filter[j],i,’+’,j,img[i+j])) res.append(k) for r in res: print(’{:<10.3f}’.format(r),end=’’)

解析 本题主要考核对题目的理解。从题目中可以看出,需要输出多个k值,k值分别为lt2列表的3个数字与It1索引为0、1、2的数字的乘积和、lt2列表的3个数字与lt1索引为1、2、3的数字的乘积和、lt2列表的3个数字与lt1索引为2、3、4的数字的乘积和、lt2列表的3个数字与lt1索引为3、4、5的数字的乘积和,一共4个k值,并且每次计算需要将k值及对应的运数输出。再观察已有代码,能够看出,需要填写的部分为k值的计算。先设置k值为0,然后创建计算每单个k值的循环,在循环内部对k值进行叠加,并通过format()方法输出每次计算的k值,对应的img列表的值,filter列表的值。需要注意的是,filter的索引值和img的索引值需与题中描述类似。
转载请注明原文地址:https://jikaoti.com/ti/Jeb0FFFM
0

最新回复(0)