Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PYTHON FUNCTION: PLEASE SERIOUS PROGRAMER AND FOLLOW INSTRUCTIONS . THANKS!! Program 2 (20 pts) Fall 2016 Credit Card Number Validation: The Luhn check or the

PYTHON FUNCTION: PLEASE SERIOUS PROGRAMER AND FOLLOW INSTRUCTIONS . THANKS!!

Program 2 (20 pts) Fall 2016 Credit Card Number Validation: The Luhn check or the Mod 10 check

In 1954, Hans Luhn of IBM proposed an algorithm for validating credit card numbers. The algorithm is useful to determine whether a card number is entered or scanned correctly. To ensure validity:

Check to see that the number has 13-16 digits

For certain companies, must start with a particular number:

Visa cards: must start with 4

Mastercard: must start with 5

American Express: must start with 37

Discover: must start with 6

Going from RIGHT to LEFT, double every second digit. If doubling a digit results in a two-digit number, add up the two digits to get a single-digit number.

Then ADD all of these single-digit numbers together sumSecondDigits.

Next, going from RIGHT to LEFT, add all digits in the ODD places sumOddPlaces.

Add the sumSecondDigits to the sumOddPlaces. If the result is divisible by 10, the card number is valid. Otherwise, it is invalid.

Write a function called isValidCreditCard that reads accepts a string and returns True if the string represents a valid credit card number and False if it is invalid.

NOTE: the function MUST call other functions to complete its work. You should create at LEAST the following functions:

A function that accepts a string and returns the sum of the digits in the even places doubled

A function that accepts a string and returns the sum of the digits in odd places

A function that accepts a string and returns the Prefix as a string (Visa, MC, Discover, AmEx).

Others as you see fit

Step 2: 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:

Too long

Too short

Valid 13-16 digit entry

First character is a letter

Beginning characters not valid (starts with letter, starts with # other than 4, 5, 6 or 37)

Sum of sums not evenly divisible by 10

Valid Discover # 6312345678901

Valid Visa # 4388576018410707

Valid AmEx #

Valid Mastercard #

=========================================================================================

Example1:

CardNumber: 4388576018402626 Length: 16 Prefix: Visa sumDblEvenPlace: 37

2*2 = 4, 2*2=4, 4*2 = 8, 1*2 = 2, 6*2 = 12 two digits, so add them and get 1+2 =3, 5*2 = 10 two digits, so add them and get 1+ 0 =1, 8*2 = 16 two digits, so add them and get 1+6 =7, 4*2 = 8 Sum: (4 + 4 + 8 + 2 + 3 + 1 + 7 +8) 37

sumOddPlace: 38 ( 6+6+0+8+0+7+8+3) Valid?: No

Example2:

CardNumber: 4388576018410707 Length: 16 Prefix: Visa sumDblEvenPlace: 29 ( 0 + 0+ 8 + 2 + 3 + 1 + 7 + 8 = 29) sumOddPlace: 41 7 + 7 + 1 + 8 + 0 + 7 + 8 + 3 = 41 Valid: Yes (29 + 41 = 70 which is evenly divisible by 10)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Temporal Databases Research And Practice Lncs 1399

Authors: Opher Etzion ,Sushil Jajodia ,Suryanarayana Sripada

1st Edition

3540645195, 978-3540645191

More Books

Students also viewed these Databases questions