首页 > 解决方案 > python for循环函数输出一遍又一遍地带来相同的结果

问题描述

我写了一个检查 id 有效性的函数有一个执行少量计算的算法 - 首先确保 id 的 len 是 9 然后其他计算,结果应该除以 10 然后输出将是 True 或 False list6 包括列表 if list6=[21544622,301038725] 手动调用该函数将带来正确的结果 True 或 False,但是在循环中出现问题并得到相同的结果

l=[]
ls=[]
count=0
num=[1,2,1,2,1,2,1,2,1]
d=[]
list3=[]
def check_id(s):
    b=0
    z=0
    s=str(s)
    if len(s)<6:
        print("wrong id")
    elif len(s)==6:
        s='000'+s
    elif len(s)==7:
        s='00'+s
    elif len(s)==8:
        s='0'+s
    else:
        pass
    for digit in s:
        l.append(int(digit))
    b=list(zip(l,num))

    for k,v in b:
        d.append(k*v)
    for n in d:
        n=str(n)
        if len(n)==2:
            n=int(n[0])+int(n[1])

        else:
            n=int(n)
        list3.append(n)
    z=sum(list3)



    return z%10==0


for x in list6:

    check=0
    check=check_id(s=x)
    print(check)

标签: pythonfunctionfor-loop

解决方案


在打印每个步骤时经过几次测试后,我发现我的问题我需要将每个 ID 拆分为不同的数字,然后将其乘以 1 或 2 我错过了这一步,现在这应该可以了


推荐阅读