Untitled
unknown
python
5 years ago
3.9 kB
6
Indexable
# BIN = primele 6 cifre (st la dreapta)
# Bank Identification Number
# MII = Major industry identifier
# prima cifra
# 1 and 2 are issued by airlines
# 3 is issued by travel and entertainment
# 4 and 5 are issued by banking and financial institutions
# 6 is issued by merchandising and banking
# 7 is issued by petroleum companies
# 8 is issued by telecommunications companies
# 9 is issued by national assignment
# The first six digits are the Issuer Identification Number (IIN).
# These can be used to look up where the card originated from.
# Visa: 4*****
# American Express (AMEX): 34**** or 37****
# Mastercard: 51**** to 55****
# Account Identifier (9 cifre)
# 7 - 15
# Most companies use just 9 digits for the account numbers, but it’s possible to use up to 12
# checksum
# ultima cifra
# The very last digit of a credit card is the check digit or checksum.
# It is used to validate the credit card number using the Luhn algorithm
# END OF BRIEF ###########
# exercitiu:
# in our banking system, the IIN must be 400000
# In our banking system, the customer account number can be any,
# but it should be unique.
# And the whole card number should be 16-digit length
# You should allow customers to create a new account in our banking system.
# Once the program starts, you should print the menu:
# 1. Create an account
# 2. Log into account
# 0. Exit
# If the customer chooses ‘Create an account’, you should generate a new card number
# which satisfies all the conditions described above.
# Then you should generate a PIN code that belongs to the generated card number.
# A PIN code is a sequence of any 4 digits. PIN should be generated in a range from 0000 to 9999.
#If the customer chooses ‘Log into account’,
# you should ask them to enter their card information.
# Your program should store all generated data until it is terminated
# so that a user is able to log into any of the created accounts
# by a card number and its pin.
# You can use an array to store the information.
# After all information is entered correctly,
# you should allow the user to check the account balance;
# right after creating the account, the balance should be 0.
# It should also be possible to log out of the account and exit the program.
from random import randint
print("1. Create an account")
print("2. Log into account")
print("0. Exit")
user_input = int(input())
while user_input != 0:
if user_input == 1:
class Card():
def __init__(self, card_increment = 1):
self.card_increment = card_increment
def random_with_N_digits(self, n):
range_start = 10**(n-1)
range_end = (10**n)-1
return randint(range_start, range_end)
def generate_new_card_nr(self):
customer_account_number = self.random_with_N_digits(9)
IIN = 400000
checksum = self.random_with_N_digits(1)
card = str(IIN) + str(customer_account_number) + str(checksum)
print("")
print("Your card has been created")
print("Your card number:")
print(card)
return card
def generate_pin(self):
pin = self.random_with_N_digits(4)
print("Your card PIN:")
print(pin)
return pin
client1 = Card()
client1.generate_new_card_nr()
client1.generate_pin()
print("")
print("1. Create an account")
print("2. Log into account")
print("0. Exit")
user_input = int(input())
elif user_input == 2:
print("")
print("Enter your card number:")
login_card_number = int(input())
print("Enter your PIN:")
login_pin = int(input())
else:
print("bad input")
break
Editor is loading...