Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@oakbani
Last active April 24, 2018 00:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oakbani/16c02ee084a4303eac49cea80bb63e55 to your computer and use it in GitHub Desktop.
Save oakbani/16c02ee084a4303eac49cea80bb63e55 to your computer and use it in GitHub Desktop.
Credit Card 16-digit Random Number Generator
# This method generates a 16 digit random credit card number.
# If 'secure' flag is True, One of the four digits of every four digits, is replaced by a random Upper case letter.
import random
def generate_random_num(secure=False):
random.seed()
credit_card_num = []
for i in range(4):
# Generate a 4-digit random number
four_digit_rand_num = [random.randint(1,9) for i in range(4)]
#print four_digit_rand_num
number = four_digit_rand_num
if secure:
# Generate a random upper case letter
upper_case_letters = map(chr, range(65, 91))
letter = random.choice(upper_case_letters)
#print letter
# Generate a random position
position = random.randint(0,3)
#print position
# Replace position
number = four_digit_rand_num[:position]
number.append(letter)
number = number + four_digit_rand_num[position+1:]
#print number
number_str = ''.join(str(e) for e in number)
#print number_str
credit_card_num.append(number_str)
return credit_card_num
print generate_random_num()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment