风百默 发表于 2022-3-6 21:45:37

我这个程序哪里出了问题,为什么结果不一样?

本帖最后由 风百默 于 2022-3-6 21:46 编辑


def validCreditCard(num):
    num=str(num)
    a=
    if len(a)==8:
      n=1
      for i in a:
            s1=0
            s2=0
            if n%2!=0:
                c=str(i*2)
                b=
                s1+=sum(b)
                n+=1
            else:
                s2+=i
                n+=1
      s=str(s1+s2)
      if s[-1]=='0':
            valid=True
      else:
            valid=False
    else:
      valid=False
    return valid
for num in :
      valid = validCreditCard(num)
      print(valid)

isdkz 发表于 2022-3-6 21:45:38

def validCreditCard(num):
    num=str(num)
    a=
    if len(a)==8:
      n=1
      s1=0             # 不要把 s1 和 s2 的赋值放循环里,否则每次循环都会被重置为 0
      s2=0
      for i in a:
            
            if n%2!=0:
                c=str(i*2)
                b=
                s1+=sum(b)
                n+=1
            else:
                s2+=i
                n+=1
      s=str(s1+s2)
      if s[-1]=='0':
            valid=True
      else:
            valid=False
    else:
      valid=False
    return valid
for num in :
      valid = validCreditCard(num)
      print(valid)

qq1151985918 发表于 2022-3-7 11:07:29

本帖最后由 qq1151985918 于 2022-3-7 11:12 编辑

def isValid(n: str or int) -> bool:
    n = str(n)
    if len(n) != 8:
      return False
    fun = lambda x: sum()
    a = sum(map(int, n))
    b = sum(map(fun, n))
    return False if (a + b) % 10 else True

if __name__ == "__main__":
    cardnum = input("Please Enter The CardNum:")
    print(isValid(cardnum))
页: [1]
查看完整版本: 我这个程序哪里出了问题,为什么结果不一样?