Файл содержит числа по выбору пользователя, найдите максимальное или минимальное четное число
Обновлено: 21.11.2024
Опросники по шкале Лайкерта упрощают понимание сложных мнений. Продолжайте читать, чтобы совершенствовать свои опросы и получать более качественные исследовательские данные.
Что такое шкала Лайкерта?
Шкала Лайкерта – это вопрос с пяти- или семибалльной шкалой. Варианты выбора варьируются от «Полностью согласен» до «Совершенно не согласен», чтобы составитель опроса мог получить целостное представление о мнениях людей. Все шкалы Лайкерта также включают среднюю точку, например, ни согласен, ни не согласен, для тех, кто нейтрально относится к предмету. Он был разработан в 1932 году социальным психологом Ренсисом Лайкертом.
Мы все согласны с тем, что нет единого вопроса, определяющего кого-то как политически либерального или консервативного. Политическая принадлежность сложна — либеральный в вопросах здравоохранения человек может быть консервативным в вопросах международной помощи.
Поэтому вместо того, чтобы задавать один вопрос, вы измеряете, насколько люди согласны или не согласны с различными утверждениями о политической политике, с помощью оценочной шкалы. Затем, когда вы комбинируете или усредняете ответы людей, вы получаете более точную оценку их либеральных или консервативных взглядов.
Короче говоря, шкала Лайкерта — это результат опроса. Серии утверждений и типов ответов являются методологией масштабирования или измерения отношения. Шкала Лайкерта — это вопрос, который содержит 5 или 7 вариантов ответа. Варианты выбора варьируются от «Полностью согласен» до «Совершенно не согласен», чтобы составитель опроса мог получить целостное представление о мнениях людей и уровне их согласия. Все вопросы опроса по шкале Лайкерта также включают средний балл для тех, кто относится к предмету нейтрально.
Как создать опрос по шкале Лайкерта
Хорошо, а как составить шкалу Лайкерта, чтобы получить результаты? Это самая сложная часть. Но не бойтесь, эти 4 шага помогут вам сделать это правильно:
Что вы хотите узнать? Допустим, вы заметили, что некоторые люди любят делать покупки в Интернете, а другие не стали бы этого делать, даже если бы от этого зависела их жизнь. И вы хотите оценить это количественно.
Итак, ваша задача — измерить, насколько людям нравится совершать покупки в Интернете. Здесь вам помогут вопросы Лайкерта.
Помните: опрос по шкале Лайкерта лучше всего работает, когда вы хотите узнать о чем-то, что невозможно понять с помощью одного вопроса. Это означает, что вам нужно измерять индикаторы — определенные типы вопросов, которые помогут вам понять концепцию, которую вы пытаетесь измерить.
Удовлетворенность клиентов. Вопросы по шкале Лайкерта отлично подходят, когда вам нужно провести опрос об удовлетворенности клиентов, потому что есть несколько характеристик, которые могут повлиять на это явление: воспринимаемое качество, ожидания клиентов, цены, скорость обслуживания или доставки и так далее. Каждый из них является показателем удовлетворенности клиентов. Вы можете узнать, доволен ли покупатель своей покупкой в целом или очень недоволен.
Итак, какие типы вопросов вы можете задать людям, чтобы узнать, насколько им нравится покупать вещи в Интернете?
Вы можете начать с того, что попросите их перечислить слова, которые ассоциируются у них с покупками в Интернете: скучно, сложно, легко, быстро, неосязаемо и т. д. Здесь вы хотите узнать мнение респондента.
Создайте индикаторные утверждения или элементы Лайкерта вокруг этого списка.
<р>1. Я предпочитаю прикасаться к вещам, прежде чем покупать их (полностью согласен — категорически не согласен) <р>2. Разнообразие онлайн-вариантов ошеломляет меня (полностью согласен — категорически не согласен) <р>3. Оформить заказ онлайн легко (полностью согласен — категорически не согласен)Важно, чтобы каждое утверждение касалось сути того, что вы хотите понять.
Вот еще несколько советов по написанию операторов индикатора:
Используйте положительные и отрицательные индикаторы для баланса. Позитивно сформулированное утверждение должно иметь отрицательно сформулированный аналог позже в анкете.
Поэтому, если у вас есть утверждение "Разнообразие онлайн-покупок меня ошеломляет", то у вас также должен быть такой пункт, как "Я ценю широкий выбор онлайн-покупок, которые предлагает предложение".
Люди, которые согласны с положительными утверждениями, должны не соглашаться с отрицательными, и наоборот. Так вы можете быть уверены, что ваши вопросы ясны, а ответы надежны.
Следуйте рекомендациям по созданию вопросов для опроса. Обращайтесь к своей аудитории, используйте ее язык и избегайте двусмысленных или длинных и сложных заявлений.
Помните: формулировка вопроса влияет на ответ. Поэтому используйте нейтральный язык, избегая таких слов, как «любовь», «ненависть», «ужасно», «невероятно» и так далее. Позвольте людям рассказать вам о силе своих чувств, а не намекать на них в заявлениях.
Когда дело доходит до порядковых шкал ответов типа Лайкерта, вам нужно принять два решения.
Во-первых, это семантическая шкала. Вы хотите выбрать варианты, которые являются простыми и недвусмысленными.Среди наиболее распространенных: Согласен — Не согласен, Помогает — Не помогает, Отлично — Плохо, Удовлетворен — Неудовлетворен, Всегда — Никогда. Но то, что они популярны, не означает, что они понятны.
И убедитесь, что различия между категориями действительны и полезны. Допустим, вы хотите измерить, как часто человек встает из-за стола на работе. Вы выбираете Никогда — Редко — Иногда — Часто — Всегда. Как вы количественно оцениваете разницу между редко и иногда?
Если шкала потенциально неоднозначна, либо объясните значения во введении, либо измените шкалу. Не используйте «Иногда», когда на самом деле имеете в виду «Раз в неделю».
Во-вторых, количество вариантов ответа. Ответы типа Лайкерта часто имеют нечетное число, поэтому респонденты имеют нейтральный вариант. Вопрос о том, является ли это необходимым или даже желательным, все еще не решен.
Большинство исследователей согласны с тем, что как минимум следует использовать опрос по шкале Лайкерта с 5 баллами. Но другие исследования показывают, что чем больше вариантов, тем реже респонденты используют среднюю или нейтральную категорию. Что кажется очевидным, так это то, что 7-балльная шкала Лайкерта приближается к верхнему пределу надежности, поэтому добавление дополнительных параметров, скорее всего, приведет к ухудшению, а не к улучшению данных по шкале Лайкерта.
Подумайте о терминалах HappyOrNot, которые вы найдете в аэропортах, торговых центрах и даже в туалетах. Вы знаете, те, что со счастливыми и сердитыми лицами на них? Большинство из них используют четное количество вариантов ответа. Почему? Потому что это заставляет людей выбирать сторону, что упрощает разделение ответов на две категории (положительный и отрицательный опыт).
Что вы выберете, зависит от того, как вы планируете оценивать ответы.
Вот еще несколько советов по созданию ответов по шкале Лайкерта:
Будьте креативны! То, что вы собираете данные, не означает, что вы должны вести себя как робот. Инструменты опроса, такие как Typeform, позволяют редактировать метки, чтобы голос вашего бренда мог сиять в ваших вопросах. Попробуйте «Интересно — не интересно» или даже «Ни в коем случае — мда — совершенно!» чтобы люди были вовлечены.
Используйте однополярные ответы. Цель шкалы Лайкерта состоит в том, чтобы получить более широкое представление с помощью ряда вопросов. Не называйте эту концепцию полярными противоположностями, такими как Безопасный — Опасный или Сильный — Слабый. Вместо этого измеряйте в градусах: очень безопасно — небезопасно и очень сильно — совсем не надежно. Их просто легче понять людям, и вы можете быть уверены, что одна крайность полностью противоположна другой.
Придерживайтесь своих весов. Создание шкалы Лайкерта включает суммирование или усреднение ответов для измерения понятия или явления. Без согласованных шкал вы не можете быть уверены, что измеряете одно и то же в каждом утверждении.
Опросы — это повторяющийся процесс. Ключом к успешному исследованию является тестирование, анализ, пересмотр и улучшение способов сбора данных.
Протестируйте свой опрос на небольшой группе участников, представляющих большую группу, о которой вы пытаетесь узнать больше и проанализировать данные. Если вы хотите получить дополнительные баллы, вы можете провести анализ товара.
Анализ элементов помогает определить, какие элементы или утверждения наиболее полезны, а какие вызывают затруднения. Математика немного сложна (именно поэтому я отказался от психологии), но инструмент статистического анализа может помочь вам найти взаимосвязь между вашими вопросами.
После того, как вы начали проводить опрос, запустите анализ еще одного элемента, чтобы убедиться, что шкала согласована.
Сегодняшнее упражнение по программированию для новичка состоит в том, чтобы написать программу на Java, которая будет принимать данные от пользователя, определять максимальное и минимальное числа и выводить их в консоль. Цель этой статьи — научить вас, как получать ввод от пользователя в Java и как использовать класс java.lang.Math для выполнения некоторых математических операций, например. макс., мин. или среднее значение. Вы можете использовать класс Scanner, добавленный в Java 1.5, для чтения пользовательского ввода с консоли. Сканеру требуется InputStream для чтения данных, и поскольку вы читаете из консоли, вы можете передать System.in , который является InputStream для консоли Eclipse или командной строки, в зависимости от того, что вы используете.
Этот класс также помогает преобразовывать пользовательский ввод в требуемый тип данных, например. если пользователь вводит числа, вы должны преобразовать их в тип данных int и сохранить в переменных int, как показано в нашем примере. Вы можете использовать метод nextInt() для чтения пользовательского ввода как целого числа.
Аналогично вы можете использовать nextLine() для чтения пользовательского ввода как строки. Существуют и другие методы чтения float, double или boolean из командной строки. Как только вы получили оба числа, остается только использовать оператор отношения меньше и больше, чем для поиска меньших и больших чисел, как показано в следующем примере.
После этого вы можете с помощью Math.max() найти максимальное из двух чисел, оно должно совпадать с вашим предыдущим результатом. Точно так же мы попросим пользователя ввести номер еще раз и отобразим как минимум два.
Как найти максимальный и минимальный пример в Java
Наша программа-пример состоит из двух частей. В первой части мы получаем ввод от пользователя, используем блок if и оператор сравнения для нахождения максимального значения, а затем используем метод Math.max() для той же цели.
Во второй части программы мы попросили пользователя ввести еще два числа, а затем использовали оператор меньше и блок if, чтобы найти меньшее из двух.
После этого мы использовали функцию Math.min() для повторного вычисления минимального числа. Если ваша программа верна, то оба вывода должны быть одинаковыми.
Программа Java для вычисления максимального и минимального числа чисел
Вот пример нашей Java-программы для вычисления и вывода максимального и минимального двух чисел, введенных пользователем в командной строке. Вы можете запустить эту программу из Eclipse IDE, просто скопировав вставку после создания проекта Java и его выбора.
Eclipse автоматически создаст исходный файл с тем же именем, что и общедоступный класс, и поместит его в нужный пакет. Кроме того, вы также можете запустить эту программу из командной строки, следуя инструкциям, приведенным здесь.
Это все о том, как вычислить максимум и минимум двух чисел в Java. В этом руководстве вы узнали, как получить ввод от пользователя, как использовать оператор отношения для сравнения двух чисел и как использовать класс java.lang.Math для выполнения общих математических операций, например. нахождение максимума и минимума двух чисел.
П. С. - Если вы начали изучать Java в школе или в каком-либо другом учебном центре, я предлагаю вам сохранить для себя книгу Head First Java или Core Java Volume 1 Кея С. Хорстманна. Это две замечательные книги по Java для начинающих.
Я пишу программу, которая принимает ввод от пользователя.
Программа работает должным образом, пока пользователь вводит значимые данные.
Но это не работает, если пользователь вводит неверные данные:
Вместо сбоя я хотел бы, чтобы программа снова запрашивала ввод. Вот так:
Как сделать так, чтобы программа запрашивала допустимые данные, а не вылетала при вводе бессмысленных данных?
Как я могу отклонить такие значения, как -1 , которые являются допустимыми значениями int , но бессмысленными в данном контексте?
22 ответа 22
Самый простой способ добиться этого — поместить метод ввода в цикл while. Используйте «Продолжить», когда вы получаете неправильный ввод, и прервите цикл, когда будете удовлетворены.
Когда ваш ввод может вызвать исключение
Используйте try и кроме, чтобы определить, когда пользователь вводит данные, которые не могут быть проанализированы.
Внедрение собственных правил проверки
Если вы хотите отклонить значения, которые Python может успешно проанализировать, вы можете добавить собственную логику проверки.
Сочетание обработки исключений и пользовательской проверки
Оба вышеуказанных метода могут быть объединены в один цикл.
Инкапсуляция всего в функцию
Если вам нужно запросить у пользователя много разных значений, может быть полезно поместить этот код в функцию, чтобы вам не приходилось каждый раз вводить его заново.
Собираем все вместе
Вы можете расширить эту идею, чтобы создать очень общую функцию ввода:
С использованием, например:
Распространенные ошибки и почему их следует избегать
Избыточное использование избыточных операторов ввода
Этот метод работает, но обычно считается плохим стилем:
Поначалу он может показаться привлекательным, потому что он короче, чем метод while True, но он нарушает принцип "Не повторяйся" при разработке программного обеспечения. Это увеличивает вероятность ошибок в вашей системе. Что делать, если вы хотите вернуться к версии 2.7, изменив ввод на raw_input , но случайно изменив только первый ввод выше? Это SyntaxError, ожидающая своего появления.
Рекурсия взорвет ваш стек
Если вы только что узнали о рекурсии, у вас может возникнуть соблазн использовать ее в get_non_negative_int, чтобы избавиться от цикла while.
Похоже, что в большинстве случаев это работает нормально, но если пользователь вводит неверные данные достаточное количество раз, сценарий завершается с ошибкой RuntimeError: превышена максимальная глубина рекурсии . Вы можете подумать, что "дурак не сделает 1000 ошибок подряд", но вы недооцениваете изобретательность дураков!
Приятно читать, много примеров, спасибо. Недооцененный урок: «Не недооценивайте изобретательность дураков!»
Я бы не только проголосовал за оба вопроса и ответа, поскольку они великолепны, но и вы заключили сделку с "неустойчивой шестеркой". Молодец, @Kevin.
Не оценивайте изобретательность дураков. и умные нападающие. DOS-атака была бы самой простой для такого рода вещей, но возможны и другие.
@JArunMani Я не думаю, что это будет плохой стиль, но может быть немного менее читабельным.У вас действительно будет только один вход на цикл, и цикл станет очень коротким, но условие может стать довольно длинным.
@laundmo, конечно, я публикую написанные мной блоки кода в открытом доступе. Не стесняйтесь использовать их в любом контексте без моего явного разрешения или ведома. Что касается сегментов без кодовых блоков, если вы хотите вставить весь мой ответ в книгу «Изучение Python», которую вы пишете, давайте поговорим об лицензионных отчислениях ;-)
Зачем вам делать while True, а затем выходить из этого цикла, в то время как вы также можете просто указать свои требования в операторе while, ведь все, что вам нужно, это остановиться, как только вы достигнете возраста?
Это приведет к следующему:
это сработает, так как возраст никогда не будет иметь значение, которое не будет иметь смысла, а код следует логике вашего "бизнес-процесса"
Хотя принятый ответ потрясающий. Я также хотел бы поделиться быстрым взломом для этой проблемы. (Это также решает проблему отрицательного возраста.)
P.S. Этот код предназначен для Python 3.x.
Обратите внимание, что этот код является рекурсивным, но здесь рекурсия не нужна, и, как сказал Кевин, она может взорвать ваш стек.
@PM2Ring - вы правы. Но моя цель состояла в том, чтобы просто показать, как «короткое замыкание» может минимизировать (украсить) длинные фрагменты кода.
Зачем присваивать переменной лямбда, вместо этого просто используйте def. def f(age): намного понятнее, чем f = lambda age:
В некоторых случаях возраст может понадобиться только один раз, после чего эта функция бесполезна. Кто-то может захотеть использовать функцию и выбросить ее после того, как работа будет выполнена. Кроме того, это может быть не лучший способ, но это определенно другой способ сделать это (что и было целью моего решения).
Функциональный подход или "смотри, мама, без петель!":
или если вы хотите, чтобы сообщение "неверный ввод" было отделено от приглашения ввода, как в других ответах:
Как это работает?
- Эта комбинация itertools.chain и itertools.repeat создаст итератор, который выдаст строки "Введите число: " один раз и "Не число! Повторите попытку: " бесконечное количество раз:
- replies = map(input, prompts) — здесь карта применит все строки подсказок из предыдущего шага к функции ввода. Например:
- Мы используем filter и str.isdigit, чтобы отфильтровать те строки, которые содержат только цифры: А чтобы получить только первую строку, состоящую только из цифр, мы используем next .
Другие правила проверки:
Строковые методы. Конечно, вы можете использовать и другие строковые методы, такие как str.isalpha, чтобы получить только строки с буквами, или str.isupper, чтобы получить только прописные буквы. Полный список см. в документах.
Тестирование членства:
Существует несколько различных способов его выполнения. Один из них — использование метода __contains__:
Сравнение чисел:
Есть полезные методы сравнения, которые мы можем использовать здесь. Например, для __lt__ ( ):
Или, если вам не нравится использовать методы dunder (dunder = двойное подчеркивание), вы всегда можете определить свою собственную функцию или использовать функции из модуля оператора.
Существование пути:
Здесь можно использовать библиотеку pathlib и ее метод Path.exists:
Ограничение количества попыток:
Если вы не хотите мучить пользователя, спрашивая его о чем-то бесконечное количество раз, вы можете указать ограничение в вызове itertools.repeat . Это можно комбинировать с указанием значения по умолчанию для следующей функции:
Предварительная обработка входных данных:
Иногда мы не хотим отклонять ввод, если пользователь случайно ввел его ЗАПИСНЫМИ БУКВАМИ или с пробелом в начале или в конце строки. Чтобы учесть эти простые ошибки, мы можем предварительно обработать входные данные, применив методы str.lower и str.strip. Например, для случая проверки членства код будет выглядеть так:
Объединение правил проверки:
Для простого случая, например, когда программа запрашивает возраст от 1 до 120 лет, можно просто добавить еще один фильтр:
К сожалению, если кому-то нужно специальное сообщение для каждого неудачного случая, то, боюсь, нет красивого функционального способа. Или, по крайней мере, я не смог его найти.
Ввод длинных строк из 15–16 цифр без единой ошибки может быть сложной задачей для большинства пользователей, но это то, что все пользователи должны делать во время оформления заказа, когда они доходят до поля формы «Номер кредитной карты». В ходе нашего крупномасштабного исследования удобства использования касс мы заметили, что у большой подгруппы пользователей возникают проблемы с правильным вводом 15–16-значного номера кредитной карты, и впоследствии возникают трудности с проверкой правильности ввода. Во время тестирования было замечено, что это было прямой причиной отказа от оформления заказа, поскольку пользователи получали ошибки проверки карты из-за простых опечаток.
Длинный 15-16-значный номер кредитной карты очень подвержен опечаткам, и мы наблюдали, что 23% пользователей либо вводили, либо подтверждали номер своей карты отдельными блоками из 4 цифр, что идентично физическому отпечатку на большинстве кредитных карт.< /p>
Наши тестовые сеансы также показали, что предоставление пользователям возможности вводить пробелы и автоматическое форматирование номера карты с помощью пробелов может значительно повысить точность пользователей при вводе номера кредитной карты, и упростить проверку что их типизация действительна. Тем не менее, наше исследование также показывает, что 80% сайтов электронной коммерции в настоящее время не используют это мощное средство для набора текста в поле своей кредитной карты.
Поэтому в этой статье мы представим результаты наших тестов по следующим вопросам:
- Как пользователи вводят номер своей карты и почему 23 % пользователей вводят или подтверждают номер своей карты отдельными блоками из 4 цифр.
- Почему это вызывает серьезные проблемы с удобством использования, когда сайты запрещают ввод номера карты с пробелами (никогда не делайте этого!).
- Наблюдения показали, как автоматическое форматирование пробелов повышает точность ввода и снижает количество отказов благодаря меньшему количеству ошибок проверки карты.
- Как техническая реализация должна обрабатывать типы карт с «нечетным» форматированием (AMEX, Diners и т. д.).
Почему 23% пользователей вводят или подтверждают номер своей карты блоками из 4 цифр
Есть два ключевых тестовых наблюдения относительно того, как ведут себя пользователи: а) после ввода номера своей карты и б) при вводе номера своей карты.
“Я всегда проверяю. Я просто проверяю правильность цифр на карточке… Я щелкаю между [каждой четвертой цифрой, прим. ред.], чтобы оценить ее». Этот субъект объяснил свой метод проверки, чтобы убедиться, что номер карты введен. правильно. Обратите внимание на размещение курсора в строке номера карты.
Во-первых, во время тестирования испытуемые проявляли особую осторожность при вводе номера карты. Часто мы наблюдали, что испытуемые после ввода номера своей кредитной карты дважды проверяли его, чтобы убедиться, что он правильный, прежде чем отправить форму. Единственная опечатка при переносе строки из 15-16 цифр, напечатанной на физической карте, в поле формы номера карты вызовет ошибку валидации. Но на практике часто бывает хуже, чем просто ошибка.
Многие пользователи (вероятно, из-за плохого предыдущего опыта оформления заказа, как правило, на других сайтах) подозревают, что ошибка проверки карты может также удалить все введенные ими данные карты, поэтому переставленная цифра заставит их повторно введя полные данные своей кредитной карты. Действительно, наш контрольный показатель при оформлении заказа показывает, что даже среди 50 самых прибыльных сайтов электронной коммерции в США 18 % по-прежнему удаляют весь номер карты пользователя даже при малейшей опечатке.
Поэтому неудивительно, что во время тестирования мы наблюдали, как подгруппа пользователей тщательно перепроверяла номер своей карты после того, как набрала его, почти всегда переводя взгляд с физической карты на введенный номер на экране и используя мышь. курсор для проверки введенного числа в 4-значных блоках.
В Walmart испытуемый начал вводить номер своей кредитной карты. Испытуемый вводил 4 цифры со своей карты в поле формы «Номер карты», затем искал следующие 4 цифры на своей кредитной карте, вводил их и так далее, пока не был введен весь номер. Несколько испытуемых «разбили» номер карты на группы по 4 цифры вместо того, чтобы вводить все 16 цифр за один раз.
Во-вторых, помимо перепроверки номера своей карты после ввода, испытуемые часто вводили свой номер в том же формате, в котором он выбит или напечатан на их физической карте. Для большинства кредитных карт (хотя и не для всех) это строка из 16 цифр с пробелами между каждой четвертой цифрой (позже в статье мы подробно рассмотрим карты, которые отличаются от этой схемы).
Во время тестирования было замечено, что 23 % испытуемых вводили и/или подтверждали номер своей карты в этих четырехзначных блоках. Тем не менее, многие сайты возвращали ошибки проверки всякий раз, когда эти субъекты также вводили пробелы, что, как мы обнаружили, является основным источником проблем с удобством использования.
"Если мы предполагаем, что карта работает, значит, я набрал что-то не так, иначе это потому, что карта недействительна. Так что я действительно не могу продвинуться дальше». Этот испытуемый вводил пробел после каждой четвертой цифры в номере своей карты.После попытки отправить форму она получила ошибку проверки (из-за пробелов), но предположила, что ошибка проверки была связана с отклонением карты, и в итоге отказалась от заказа.
"Я ввела пробелы между [каждой четвертой цифрой, прим. ред.], как на карточке. Я подумал, что они должны быть там, раз он на карте». Этот испытуемый начал вводить номер кредитной карты, добавляя пробел после каждых четырех цифр. Когда она не смогла ввести число целиком (поскольку в поле American Eagle разрешено не более 16 символов), она растерялась, не понимая, что не так.
Номера карт на физических кредитных картах часто содержат пробелы, чтобы облегчить чтение числовой строки. Пользователи иногда интерпретируют эти пробелы как часть числовой строки и обязаны включать их при вводе номеров своих кредитных карт в поле «Номер карты». Однако некоторые сайты не допускают пробелов в поле номера карты, что приводит к ошибкам проверки для пользователей, которые просто вводят именно то, что видят на своей карте. В сочетании с часто очень общими сообщениями об ошибках проверки карты (см. Улучшение ошибок проверки с помощью адаптивных сообщений) это может привести к отказу от оформления заказа, как показано в примере тестового сеанса выше.
Разрешить пользователям вводить пробелы
В качестве первого основополагающего шага крайне важно разрешить пользователям включать пробелы в поле «Номер карты». Разрешение пробелов при вводе номера карты означает, что пользователи могут вводить точно то, что они видят напечатанным на своей физической карте. В качестве приятного бонуса пользователю намного проще подтвердить ввод номера карты. «4571661027381607» просто сложнее визуально проверить, чем «4571 6610 2738 1607».
Пробелы в поле «Номер карты» не должны вызывать ошибок проверки или быть удалены из отображаемого ввода. Если ваш обработчик карточных платежей не принимает отправленные пробелы, то вместо этого пробелы могут быть автоматически удалены перед отправкой формы на сервер (просто создайте JavaScript EventListener, который привязывается к форме, а затем используйте регулярное выражение для обнаружения и удаления любых символы пробела в номере карты, вводимые непосредственно перед отправкой на сервер для обработки).
Другой субъект обнаружил ошибку проверки карты в REI, потому что он случайно добавил лишний "0" в номер кредитной карты. Он пытался добавить пробел после каждой 4-й цифры, однако в поле было ограничение на количество символов, поэтому после добавления 3-го пробела ничего не произошло. Сильно сбитый с толку, он начал просматривать другие поля кредитной карты и перечитал сообщение об ошибке. Не сумев обнаружить ошибку, он в итоге отправил неправильный ввод 3 раза подряд.
Кроме того, некоторые сайты вместо того, чтобы выдавать ошибку, просто ограничивают допустимое количество символов в поле ввода «Номер карты». Это не рекомендуется. Помимо того, что интервалы по своей сути запрещены, это также может иметь серьезные последствия для небольшой подгруппы пользователей, поскольку не все номера карт состоят из 16 цифр. Хотя большинство кредитных карт имеют 16 цифр, существуют различия: AMEX — 15 цифр, VISA оставляет за собой право использовать 13–19 цифр, Maestro — 12–19 цифр, Solo и Switch — 16, 18 или 19 цифр, China UnionPay — 16, 18 или 19 цифр. 16-19 цифр и так далее. Ограничение символов во внешнем интерфейсе на практике должно также полностью блокировать нескольких пользователей с длиной номера карты, которая отклоняется от нормы.
Автоматическое форматирование номера карты с пробелами
"Он просто все форматирует", испытуемый был приятно удивлен, когда ввел свой 16-значный номер VISA (слева), а затем Walmart автоматически отформатировал его с пробелами для каждого 4-значный фрагмент (справа).
Из тестовых сеансов стало ясно, что пользователи не только с большой вероятностью допустят опечатки в номере своей карты — им также будет сложно впоследствии проверить этот подверженный ошибкам ввод. Однако при тестировании сайтов, которые автоматически форматировали номер карты пользователя с пробелами, испытуемые испытывали сочетание более легкого правильного ввода того, что они видели напечатанным на своей кредитной карте, и< /em> упростить последующую проверку того, что они напечатали.
Следовательно, испытуемые сталкивались с меньшим количеством проблем с проверкой платежа на сайтах, которые автоматически вводили номер карты с пробелами, по сравнению с теми сайтами, которые этого не делали. Поэтому, если пользователь вводит номер карты VISA или MasterCard, ввод должен быть автоматически отформатирован, чтобы включать пробел для каждой четвертой цифры.
BestBuy автоматически форматирует номер кредитной карты пользователя по мере его ввода.
Автоматическое форматирование номеров карт в идеале должно выполняться в режиме реального времени, когда пользователи вводят номер своей карты (это также называется "маска ввода"). Преимущество маскирования ввода заключается в том, что пользователям проще проверять номера карт, поскольку при их вводе добавляются пробелы. Кроме того, маскирование ввода предупреждает пользователей о том, что номер карты будет отформатирован для них. Если число не отформатировано до тех пор, пока пользователи не покинут поле, они могут не знать, что произойдет автоматическое форматирование. Без оперативного форматирования пользователи могут без необходимости вводить пробелы (хотя пробелы, конечно, никогда не должны вызывать проблем, независимо от маски ввода).
Стоит отметить, что концепция, позволяющая сделать ввод карты очень похожим на то, что напечатано на физической карте пользователя, также применялась для раскрывающихся списков «Срок действия», как мы рассмотрели в разделе Форматирование полей «Срок действия» точно так же. кредитной карты (40 % ошибаются).
Некоторые типы карт отличаются от 4-значного разделения
Приступая к поддержке автоматического форматирования пробелов, следует учитывать, что эмитенты кредитных карт используют разные схемы форматирования пробелов. В то время как подавляющее большинство карт и типов карт используют 16 цифр, разделенных на 4-значные последовательности, как и все карты VISA, MasterCard, Discover и JCB, некоторые типы карт отличаются. Наиболее важным отклонением является 15-значный номер AMEX, в котором используется фрагментация 4-6-5. Для любого 19-значного номера кредитной карты обычно используется фрагментация 4-4-4-4-3.
Подобно тому, как мы делали это для нашего списка статистики показателей отказа от корзины, мы собрали информацию о множестве различных типов карт и создали справочную таблицу, которую вы можете использовать для реализации автоматического форматирования номеров карт. В таблице указана длина номера карты, диапазоны ИИН и шаблоны интервалов для 20 различных типов карт.
Чтобы упростить реализацию этой функции автоматического форматирования, мы создали справочную таблицу с диапазонами IIN и шаблонами интервалов для 20 различных типов карточек.
Это означает, что форматирование пробелов, в первую очередь для карт AMEX, должно меняться в зависимости от типа карты. К счастью, тип карты можно определить автоматически по первым цифрам в номере карты, где карты AMEX начинаются либо с «34», либо с «37». Чтобы обеспечить хороший возврат инвестиций, рассмотрите возможность поддержки автоматического форматирования только для наиболее распространенных 15- и 16-значных карт, таких как VISA, MasterCard, JCB, Discover и AMEX (и/или любых типов карт, которые особенно популярны на вашем сайт). Учитывая редкость карт, которые отклоняются от этих двух шаблонов, просто позволив пользователям самим вводить пробелы, придется делать для «лишних» карт (обычно это Switch, Solo, Maestro, Diners enRoute, Diners Club и Carte Blanche, которые отклоняются).
Автоматическое форматирование ввода «Номер карты» с пробелами
Учитывая, что 5 % пользователей в США отказались от одной или нескольких покупок в прошлом квартале исключительно из-за ошибок проверки кредитной карты, поразительно, что 80 % сайтов активно не помогают своим клиентам. пользователям более точно вводить и подтверждать ввод номера карты 15-16. Особенно с учетом подверженного ошибкам процесса переноса номера карты, напечатанного на физической карте, в поле экранной формы.
На самом базовом уровне все сайты должны позволять пользователям вводить пробелы в поле «Номер карты». Это означает, что сайты не должны ни запрещать ввод определенного пробела, ни устанавливать ограничение на длину ввода (например, ограничение поля до 16 символов).
В идеале эта концепция развивается путем автоматического форматирования всех пользовательских вводов «Номера карты» с пробелами, зная, что это приводит к меньшему количеству ошибок проверки карты — как потому, что это повышает точность пользователя при вводе номера карты и им будет легче обнаружить любые опечатки впоследствии. Для 16-значных карт, таких как VISA, MasterCard, Discover и JCB, это означает автоматическое добавление пробела для каждого 4-значного типа пользователей. Для 15-значных карт AMEX автоматический интервал должен использовать вместо этого шаблон 4-6-5.
В этой статье представлены результаты исследования только одного из 580+ руководств по пользовательскому интерфейсу в Baymard Premium. Получите полный доступ, чтобы узнать, как создать «современную» корзину и оформить заказ для пользователей.
Читайте также: