15. Платёжные системы.
Условие:
Пользователь вводит номер банковской карты, программа определяет тип платёжной системы. Задачу можно решить как с использованием словаря, так и с использованием конструкции if-elif совмество с оператором in. Номера карт начинаются с:
• 2 - Мир
• 3 - American Express, JCB International, Diners Club
◦ 30, 36, 38 - Diners Club
◦ 31, 35 - JCB International
◦ 34, 37 - American Express
• 4 - VISA
• 5 - MasterCard, Maestro
◦ 50, 56, 57, 58 - Maestro
◦ 51, 52, 53, 54, 55 - MasterCard
• 6 - Maestro, China UnionPay, Discover
◦ 60 - Discover
◦ 62 - China UnionPay
◦ 63, 67 - Maestro
• 7 - УЭК (Универсальная электронная карта)
- По первой цифре карты:
int(s[0]) == 4 # Visa
- По первым двум цифрам карты:
int(s[0:2]) == 56 # Maestro
Код:
# первый способ
number = input("Введите номер банковской карты ")
if number[0] == "2":
print("Мир")
elif number[0:2] == "30" or number[0:2] == "36" or number[0:2] == "38":
print("Diners Club")
elif number[0:2] == "31" or number[0:2] == "35":
print("JCB International")
elif number[0:2] == "34" or number[0:2] == "37":
print("American Express")
elif number[0] == "3":
print("American Express, JCB International, Diners Club")
elif number[0] == "4":
print("Visa")
elif number[0:2] == "50" or number[0:2] == "56" or number[0:2] == "57" or number[0:2] == "58":
print("Maestro")
elif number[0:2] == "51" or number[0:2] == "52" or number[0:2] == "53" or number[0:2] == "54" or number[0:2] == "55":
print("MasterCard")
elif number[0] == "5":
print("MasterCard, Maestro")
elif number[0:2] == "60":
print("Discover")
elif number[0:2] == "62":
print("China UnionPay")
elif number[0:2] == "63" or number[0:2] == "67":
print("Maestro")
elif number[0] == "6":
print("Maestro, China UnionPay, Discover")
elif number[0] == "7":
print("УЭК")
# второй способ
dict_pay_system = {
"Мир": [2],
"American Express, JCB International, Diners Club": [3],
"Diners Club": [30, 36, 38],
"JCB International": [31, 35],
"American Express": [34, 37],
"VISA": [4],
"MasterCard, Maestro": [5],
"Maestro": [50, 56, 57, 58, 63, 67],
"MasterCard": [51, 52, 53, 54, 55],
"Maestro, China UnionPay, Discover": [6],
"Discover": [60],
"China UnionPay": [62],
"УЭК": [7]
}
number = input("Введите номер банковской карты ")
for x, y in dict_pay_system.items():
if int(number[0:2]) in y:
print(x)
elif int(number[0]) in y:
print("Входит в группу", x)