В моей программе я хочу проверить, является ли символ штриха общей цифрой (0-9)
.isnumeral работает странно, потому что считает алфавиты (a-z) Истиной, тогда я понял, что .isnumeral на самом деле не ищет исключительно то, что я хочу - цифры. И через руководство я нашел .isdigit но:
dna = 'a3'
start = 0
end = 1
if dna[end].isdigit is True:
print('Yes')
Это не работает, и «Да» не отображается, как ожидалось.
4 ответа
if dna[end].isdigit is True:
isdigit()
- это функция, а не атрибут.
Вы забыли скобки в конце, поэтому вы ссылаетесь на сам объект функции , а не на result вызова функции.
Вы должны вызвать метод isdigit()
:
dna = 'a3'
start = 0
end = 1
if dna[end].isdigit():
print('Yes')
Это дает ожидаемый ответ, правда.
Если вы сделаете dna[end].isdigit
, он просто выдаст объект <built-in method isdigit of str object at address>
, который не будет оцениваться.
Две вещи:
нет необходимости сравнивать с истиной, просто используйте результат из isdigit ()
isdigit () - это функция, которая правдивая сама по себе, но не равна True
Посетите документы по Python для получения дополнительной информации.
dna[end].isdigit
в этом случае ссылается на функцию str.isdigit
. Если вы сделаете print(type(dna[end].isdigit))
, вы поймете, что я имею в виду.
Чтобы вызвать функцию вместо этого, добавьте круглые скобки, как это if dna[end].isdigit():
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.