Дополнительно
Как проверить, является ли тип переменной строкой?
Есть ли способ проверить, является ли тип переменной в python строковым. например:
isinstance(x,int);
для целочисленных значений?
699
20
В Python 2.x вы должны сделать следующее
basestring
является абстрактным суперклассомstr
иunicode
. Его можно использовать для проверки того, является ли объект экземпляромstr
илиunicode
.В Python 3.x правильным тестом будет следующий
Класс
bytes
не считается строковым типом в Python 3.Я знаю, это старая тема, но, будучи первым, кто показал в Google и учитывая, что я Дон'т найти удовлетворительных ответов, Я'МР оставлю это здесь для справки:
шесть является Python 2 и 3 библиотеки совместимости, который уже охватывает этот вопрос. Затем вы можете сделать что-то вроде этого:
Проверять код, это то, что вы ищите:
В Python 3.х или Python 2.7.6
вы можете сделать:
или:
надеюсь, что это помогает!
Модуль типов также существует, если вы проверяете не только ints и strings. http://docs.python.org/library/types.html
с basestring` это't, определяемая в Питон3, эта маленькая хитрость может помочь сделать код совместимым:
после этого можно выполнить следующий тест на обоих вместо python2 и Питон3
Питон 2 / 3 в том числе Unicode
http://python-future.org/overview.html
Отредактируйте на основе лучшего ответа ниже. Спуститесь примерно на 3 ответа и узнайте о крутости basestring.
Старый ответ: Следите за юникодными строками, которые вы можете получить из нескольких мест, включая все вызовы COM в Windows.
Много хороших предложений других здесь, но я не'т видите хороший кросс-платформенный резюме. Следующее должно быть хорошее падение для любой программы на Python:
В этой функции мы используем isinstance(объект, classinfo), чтобы увидеть, если наш вход с ул. `
в Python 3 или basestring
в Python 2.Также я хочу заметить, что если вы хотите проверить, является ли тип переменной определенного типа, вы сможете сравнить тип переменной к типу известного объекта.
Для строк можно использовать этот
Так,
У вас есть много вариантов, чтобы проверить, является ли переменная строкой или нет:
Данный заказ на цели.
Альтернативный способ для Python 2, без использования basestring:
Но все-таки выиграл'т работать в Python 3, так как
Юникод
это'определенными т (в Python 3).возвращает true
возвращает true
Вот мой ответ для поддержки Python 2 и Python 3 наряду с этими требованиями:
шесть
или подобный модуль совместимости, так как они склонны скрывать от То, что пытается быть достигнуто.Если вы не хотите зависеть от внешних библиотек, это работает как для Python 2.7+ и Python 3 (http://ideone.com/uB4Kdc):
Вы можете просто использовать isinstance функция, чтобы убедиться, что входные данные в формате строки или Юникод. Ниже примеры помогут вам легко разобраться.
Это, как я делаю это:
Я'видел: