求解这个Python程序怎么写

img


我是Python初学者今天看到一个要求,搞得我一头雾水,请大家帮帮忙,多多关照,谢谢啦

请参见我的博文:

import random

def get_id():
    n = 0
    while n < 100:
        num = random.randint(10**16,99999999999999999)
        list1 = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
        sum = 0
        index = 0
        for i in str(num):
            sum += int(i) * list1[index]
            index += 1
        y = sum % 11
        list2 = ['1','0','X','9','8','7','6','5','4','3','2']
        print(str(num) + list2[y])
        n += 1
    print('\n已自动生成%d个身份证号'%n)

get_id()

import random
for i in range(100):
    id = list(str(random.randint(10000000000000000,99999999999999999)))
    a = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
    i = sum(int(id[i])*a[i] for i in range(17))%11
    c = ['1','0','X','9','8','7','6','5','4','3','2']
    id.append(c[i])
    print(''.join(id))

import random

for a in range(1,101):
    num_17 = random.randint(10_000_000_000_000_000,99_999_999_999_999_999)
    list_1 = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
    total = 0
    for i in range(0,17):
        total += int(list(str(num_17))[i])*list_1[i]
    list_2 = [1,0,'X',9,8,7,6,5,4,3,2]
    num = list_2[total%11]
    print(str(num_17)+str(num))