Как запретить ввод символов & не больше определенного кол-ва символов в Python?

366
19 апреля 2017, 11:47

Пишу бота на Python (библиотека pyTelegramAPIBot).

Встал вопрос в том, что когда происходят команды с UPDATE в БД, то если ввести что-то неверно, например:

  • передавать VARCHAR в INT
  • передавать значения для UPDATE, которых не существует.

    То мы получим ошибку. Хочу узнать, каким методом проще решить данную проблему?

  • Answer 1

    Мы не можем ограничить ввод пользователя (тем более в стороннем приложении), мы можем только работать с полученными значениями, и, если нас что-то не устроило, просить пользователя ввести команду заново (можно также дать рекомендации).

    Вот некоторые функции, которые могут помочь:

    • isdigit() - проверка на то, состоит ли строка только из чисел (строка с префиксами +, -, с запятыми, точками и т.д. вернёт False)
    • isalpha() - проверка на то, состоит ли строка только из букв
    • len('Тест') - получение длины строки
    • float('1.23') - преобразование строки к числу float
    • int('123') - преобразование строки к числу int
    • 'Это тестовая строка'.startswith('Это') - проверка на то, начинается ли строка с указанного слова (регистр учитывается)
    • 'Это тестовая строка'.endswith('строка') - проверка на то, заканчивается ли строка на указанное слово (регистр учитывается)
    • 'строка' in 'Это тестовая строка' - проверка на наличие подстроки
    • 'Это тестовая строка'.upper() - приведение строки к верхнему регистру
    • 'Это тестовая строка'.lower() - приведение строки к нижнему регистру
    • 'эТО тЕсТоВая СтРокА'.capitalize() - переводит первый символ строки в верхний регистр, а все остальные - в нижний.
    READ ALSO
    Как заставить приложение “Галерея” Android обновиться?

    Как заставить приложение “Галерея” Android обновиться?

    Всем, Привет! Сейчас работаю над одним приложением под Android для манипуляций с файламиСтолкнулся с одной непоняткой

    395
    Java имплементация Интерфейса

    Java имплементация Интерфейса

    При имплементации одного и того же интерфейса во многие классы приложения, этот интерфейс пересоздается каждую имплементацию, то есть все...

    254
    Java, Андроид, setter/getter

    Java, Андроид, setter/getter

    Добрый день, понемногу начинаю изучать Java (с андроидом), естественно нужен практикум, так вот, решил написать простенькую программу, в которой...

    192
    CuncurrentModificationException

    CuncurrentModificationException

    Добрый день, при работе с javanio возникает CuncurrentModificationException, вроде стараюсь использовать iterator, и удалять элементы, но всеравно, при одновременном...

    225