Что ж, давайте теперь воспользуемся этими знаниями для решения какой-нибудь практической задачи, например, разберем номер банковской карты и посмотрим, что это за карта, какой системой она выпущена, какой номер карты внутри банка, и какое контрольное число у этого номера карты есть. Пожалуйста, когда будете экспериментировать, не указывайте никакие настоящие номера настоящих карт в этом блокноте. Для начала мы можем попробовать определить платежную систему, например, карты МИР всегда начинаются с одной из пяти последовательностей цифр и, чтобы проверить, что карта выпущена платежной системой МИР, нам нужно узнать номер карты и проверить, что наш номер карты начинается с одной из строк, составляющей кортеж. Мы сделали для себя кортеж из строк, с которых начинаются все карты, выпущенные платежной системой МИР, и просим компьютер с помощью метода "startsWith()" проверить, что введенная нами карта начинается с какой-то из этих строк. Давайте проверим, что это действительно так. Немножечко допишем интерфейс и проверим, запустим нашу программу, и возьмем какую-нибудь несуществующую карту. Посмотрим, выпущена ли она платежной системой МИР? Да, выпущена, потому что она начинается с одной из строк, которую мы указали в нашем кортеже. В случае с системой VISA все несколько проще. Все карты выпущены международной платежной системой VISA начинаются с цифры четыре, и мы точно так же можем узнать номер карты, так как нам надо проверить всего лишь одну цифру, самую первую. Не обязательно использовать метод "startsWith()", можно просто обратиться по индексу, давайте так и сделаем. Если первый символ, символ с индексом ноль — это цифра четыре, то карта выпущена платежной системой VISA. Проверим, как это работает. Возьмем, опять же, несуществующий номер карты и попросим компьютер сказать, выпущена ли она системой VISA? Компьютер смотрит на самый первый элемент, самый первый символ, сравнивает его с цифрой четыре и соглашается с нами, что выпущена VISA. Наконец, давайте посмотрим на то, как устроены номера карт платежной системы MasterCard. С ней все сложнее, потому что карты, выпущенные MasterCard начинаются либо с чисел: 51, 52, 53, 54, 55, либо с огромной последовательности чисел, из которых мы, наверное, не очень хотим руками делать кортеж. Поэтому, чтобы определить, выпущена ли карта платежной системой MasterCard, мы можем сделать срез из первых двух символов номера карты, превратить этот срез в число, и проверить, что это число находится между числом 51 и числом 55. Если же это число там не находится, мы можем попробовать попытать счастья во второй раз, сделать срез из первых четырех символов номера карты, превратить эти четыре символа в число, и проверить, что число составлено из первых четырех цифр номера карты, входит в диапазон чисел, которыми пользуется платежная система MasterCard. Давайте попробуем это сделать. Опять же, спросим номер банковской карты, извлечем с помощью среза первые два символа и первые четыре символа в другую переменную. Обратите внимание, что срезы, хоть и называются срезами, нашу строчку не изменяют, и наша строка всегда остается неизменной, мы лишь получаем копию тех символов, которые находятся на соответствующих местах. Не забудем превратить результат работы двух наших срезов в целое число, и теперь мы можем проверить, находятся ли первые две цифры в диапазоне от 51 до 55? Если да, то сказать, что это MasterCard. Также мы можем проверить, что наши первые четыре числа находятся в диапазоне от 2221 до 2720. Опять же скажем, что карта выпущена платежной системой MasterCard. Проверим, как это работает. Возьмем несуществующий номер карты. Мы видим, что компьютер считает, что она выпущена платежной системой MasterCard, ведь номер карты начинается с числа 2229, которое, разумеется, находится в диапазоне между числом 2221 и числом 2720. В следующий раз мы научимся работать со срезами из трех аргументов и узнаем, что у срезов может быть шаг.