Сохранить для вывода цикла в Python - PullRequest
0 голосов
/ 26 октября 2018

Я разрабатываю код, который оценивает национальный код.В моем алгоритме мне нужно умножить номер позиции на число, так что суммируйте это значение.Например: мой национальный код - 0123456789, и я хочу умножить на 3 (номер позиции) на 2 (само число).

код: 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)

1 Ответ

0 голосов
/ 26 октября 2018

Для вашей цели этот лайнер должен работать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...