WRITE A PYTHON FUNCTION Fall 2016 Credit Card Number Validat
WRITE A PYTHON FUNCTION
Fall 2016 Credit Card Number Validation: The Lehn check or the Mod 10 check In 1954, Hans Lehn of IBM proposed an algorithm for validating credit card numbers. The algorithm useful to determine whether a card number is entered or scanned correctly. To ensure validity: Write a function called is Valid Credit Card that reads accepts a string and returns True if the string represents a valid credit card number and False if it is invalid. Create a list of sample credit card numbers and call your function, printing the number and a message indicating if the number was valid or not. Here are some ideas about what to test:Solution
import sys
def sumeven(cardnumber):
     sum=0
     l=[]
     for i in range(len(cardnumber)-2,-1,-2):
         d=2 * int(cardnumber[i])
         s=str(d)
         if len(s) ==2:
             s=int(s[0])+int(s[1])
             l.append(s)
         else:
             l.append(d)
       
     for i in l:
         sum=sum+i
   
     return sum
   
 def sumodd(cardnumber):
     sum=0
   
     for i in range(len(cardnumber)-1,-1,-2):
         sum=sum+int(cardnumber[i])
               
      return sum
def cardname(cardnumber):
     if cardnumber[0] ==\'4\':
         return \'VISA\'
     elif cardnumber[0]==\'5\':
         return \'MASTERCARD\'
     elif cardnumber[0:2]==\'37\':
         return \'AMERICAN EXPRESS\'
     else:
         return \'DISCOVER\'
def validity(even,odd):
     sum=even+odd
     if sum%10 ==0:
         return \'VALID\'
     else:
         return \'NOT VALID\'
def getcard():
     cardno=input(\'Enter the credit card number \')
     if cardno[0].isalpha():
         print(\"DON\'T BEGIN WITH ALPHABET\")
         sys.exit()
    if len(cardno)<13:
         print(\'credit card number is too short\')
         sys.exit()
     elif len(cardno)> 16:
         print(\'credit card number is too length\')
         sys.exit()
     else:
         return cardno
   
 if __name__==\'__main__\':
    cardno=getcard()
     even=sumeven(cardno)
     odd=sumodd(cardno)
     name=cardname(cardno)
     valid=validity(even,odd)
     print (\'sum of even number %d\' % even)
     print(\'sum of odd number %d\' % odd)
     print(\'card name is %s\' % name)
     print(\'the card is %s\' % valid)


