求各位大神解答Python语言编程问题

求各位大神解答Python语言编程问题第七题
2025-05-09 07:16:48
推荐回答(1个)
回答1:

#-*coding:utf-8*-
def chartonum(c):
    return ord(c)-ord('0')
def getdigitsum(num):
    s=0
    while num>0:
        s+=num%10
        num//=10
    return s
def isvalid(cardno):
    if not cardno.isdigit() or len(cardno)!=8:return False
    l=[chartonum(c) for c in cardno]
    result=l[7]+l[5]+l[3]+l[1]
    for i in [0,2,4,6]:
        result+=getdigitsum(l[i]*2)
    return False if result%10 else True
if __name__=="__main__":
    import sys
    if sys.version[0]=='3':raw_input=input
    cardno=raw_input("请输入信用卡号:")
    valid=isvalid(cardno)
    if valid:
        print("你输入的卡号合法")
    else:
        print("你输入不是合法卡号")