组织介绍
# luhn algorithm class CreditCard: def __init__(self, card_no): self.card_no = card_no @property def company(self): comp = None if str(self.card_no).startswith('4'): comp = 'Visa Card' elif str(self.card_no).startswith(('50', '67', '58', '63',)): comp = 'Maestro Card' elif str(self.card_no).startswith('5'): comp = 'Master Card' elif str(self.card_no).startswith('37'): comp = 'American Express Card' elif str(self.card_no).startswith('62'): comp = 'Unionpay Card' elif str(self.card_no).startswith('6'): comp = 'Discover Card' elif str(self.card_no).startswith('35'): comp = 'JCB Card' elif str(self.card_no).startswith('7'): comp = 'Gasoline Card' return 'Company : ' + comp def first_check(self): if 13 <= len(self.card_no) <= 19: message = "First check : Valid in terms of length." else: message = "First check : Check Card number once again it must be of 13 or 16 digits long." return message def validate(self): # double every second digit from right to left sum_ = 0 crd_no = self.card_no[::-1] for i in range(len(crd_no)): if i % 2 == 1: double_it = int(crd_no[i]) * 2 if len(str(double_it)) == 2: sum_ += sum([eval(i) for i in str(double_it)]) else: sum_ += double_it else: sum_ += int(crd_no[i]) if sum_ % 10 == 0: response = "Valid Card" else: response = 'Invalid Card' return response @property def checksum(self): return '#CHECKSUM# : ' + self.card_no[-1] @classmethod def set_card(cls, card_to_check): return cls(card_to_check) card_number = input() card = CreditCard.set_card(card_number) print(card.company) print('Card : ', card.card_no) print(card.first_check()) print(card.checksum) print(card.validate()) # 79927398713 # 4388576018402626 # 379354508162306
成就
1
Star
3
Fork
成员(4)
1257434 hwang zc 1578947535
hzcc
2118102 luoyali 1602314695
我买几个橘子去 ()
2194923 loris 7 1609243123
骑着骡子找马
5688525 ithzc 1 947218421 1583311917
test2020

搜索帮助