Reference no: EM131716042
Write file named credit_card.py containing a single function, check. Check accepts a single input - a positive integer. It returns True if the integer represents a valid credit card number. As with all functions that return a bool value, if it does not return True it should return False. named credit_card.py containing a single function, check. Check accepts a single input - a positive integer. It returns True if the integer represents a valid credit card number. As with all functions that return a bool value, if it does not return True it should return False.
Credit card numbers have what is called a check digit. This is a simple way of detecting common mis-typings of card numbers. The algorithm is as follows:
- Form a sum of every other digit, including the right-most digit; so 5490123456789128 (5490123456789128) sums to 4 + 0 + 2 + 4 + 6 + 8 + 1 + 8 = 33.
- Double each remaining digit, then sum all the digits that creates it; the remaining digits (5 9 1 3 5 7 9 2) in our example (5490123456789128) double to 10 18 2 6 10 14 18 4, which sums to 1+0 + 1+8 + 2 + 6 + 1+0 + 1+4 + 1+8 + 4 = 37
- Add the two sums above (33 + 37 = 70)
- If the result is a multiple of 10 (i.e., its last digit is 0) then it was a valid credit card number.
2. Example Invocations
When you run credit_card.py, nothing should happen. It defines a function, it does not run it.
If in another file (which you do not submit) you write the following:
import credit_card
if credit_card.check(1):
print('ERROR: 1 is not valid')
if credit_card.check(240):
print('GOOD: 240 is valid')
if credit_card.check(9548):
print('GOOD: 9548 is valid')
if credit_card.check(5490123456789129):
print('ERROR: 5490123456789129 is not valid')
you should get the following output:
GOOD: 240 is valid
GOOD: 9548 is valid