Untitled
unknown
python
2 years ago
1.9 kB
13
Indexable
import re
def main():
number = get_number()
number_list = [int(x) for x in str(number)]
number_string = str(number)
card_type = ""
if validate_number(number_list):
if re.search("^34|37", number_string) and len(number_string) == 15:
card_type = "AMEX"
print(card_type)
elif re.search("^4", number_string):
if len(number_string) == 13 or len(number_string) == 16:
card_type = "VISA"
print(card_type)
else:
print("INVALID")
elif re.search("^51|52|53|54|55", number_string) and len(number_string) == 16:
card_type = "MASTERCARD"
print(card_type)
else:
print("INVALID")
else:
print("INVALID")
def get_number():
while True:
try:
number = int(input("Number: "))
except TypeError:
print("Invalid input")
else:
return number
def validate_number(l):
sum = 0
position = len(l)
if position % 2 != 0:
for n in range(position):
if n % 2 == 0:
sum += l[n]
else:
l[n] *= 2
if l[n] > 9:
separated_digits = [int(x) for x in str(l[n])]
sum += separated_digits[0] + separated_digits[1]
else:
sum += l[n]
else:
for n in range(position):
if n % 2 == 0:
l[n] *= 2
if l[n] > 9:
separated_digits = [int(x) for x in str(l[n])]
sum += separated_digits[0] + separated_digits[1]
else:
sum += l[n]
else:
sum += l[n]
if sum % 10 == 0:
return True
else:
return False
main()
Editor is loading...