Use the Luhn algorithm to check if credit card numbers are valid
Project description
credit_card_checker_py
I published this package on PyPI https://pypi.org/project/credit-card-checker/
To install the package, please add the package to your Pipfile.
or run pip3 install credit_card_checker
Validating a Number
Strings of length 1 or less are not valid. Spaces are allowed in the input, but they should be stripped before checking. All other non-digit characters are disallowed.
Example 1: valid credit card number
4539 1488 0343 6467
The first step of the Luhn algorithm is to double every second digit, starting from the right. We will be doubling
4_3_ 1_8_ 0_4_ 6_6_
If doubling the number results in a number greater than 9 then subtract 9 from the product. The results of our doubling:
8569 2478 0383 3437
Then sum all of the digits:
8+5+6+9+2+4+7+8+0+3+8+3+3+4+3+7 = 80
If the sum is evenly divisible by 10, then the number is valid. This number is valid!
Example 2: invalid credit card number
8273 1232 7352 0569
Double the second digits, starting from the right
7253 2262 5312 0539
Sum the digits
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
57 is not evenly divisible by 10, so this number is not valid.
example usage
>>> from credit_card_checker import CreditCardChecker
>>> CreditCardChecker('234 567 891 234').valid()
True
>>> CreditCardChecker('8273 1232 7352 0569').valid()
False
test
To run the tests, run pytest credit_card_checker_test.py
Alternatively, run the pytest module:
python3 -m pytest credit_card_checker_test.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for credit_card_checker-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0862049b388677258f70789dc2de53b3819e3c69a34a60cf4ecba846f276e78 |
|
MD5 | b44dabd24920992fdc50b7dd537716df |
|
BLAKE2b-256 | 2f1d4d2357436cc6b6beb8de352d365eec92eb92d4e686806d8a464978d454a6 |