首页 > 解决方案 > 在python中保存循环输出

问题描述

我开发了一个评估国家代码的代码。在我的算法中,我需要将位置数乘以数字,所以对这个值求和。例如:我的国家代码是 0123456789,我想在 2(数字本身)中乘以 3(位置编号)。

代码:0123456789
位置编号*编号本身=值
10*9=90
9*8=72
8*7=56
7*6=42
6*5=30
5*4=20
4*3=12
3*2=6
2*1=2
1*0=0

我的问题是总和值。怎么办?
我的代码:

ID= str(input('ID Number: '))

if len(ID)>10 or len(ID)<8  :
    print('Error')

if len(ID)==8 :
    ID=str('00'+ID)
    print(ID)
elif len(ID)==9 :
    ID=str('0'+ID)
    print(ID)


for i in range(0,(len(ID))):
    x=ID[i]
    y=10-i
    ar=[x,y]
    gg=int(ar[0])*ar[1] 
    print(x,y,gg)

标签: pythonfor-looparraylist

解决方案


出于您的目的,这一个班轮应该可以工作:

answer = sum([int(ID[i])*(i+1) for i in range(len(ID))])

这相当于:

answer = 0
for index in range(len(ID)):
    answer += int(ID[index])*(index+1) # since index starts from 0

推荐阅读