В вашем коде вы сравниваете token
и token.isdigit()
с оператором is not
.Он сравнивает объекты, если они являются одним и тем же объектом, но string
и boolean
даже не относятся к одному и тому же типу, поэтому результат всегда верен:
>>> string = "these 5 sentences should not have 2 numbers in them"
>>> string.split()
['these', '5', 'sentences', 'should', 'not', 'have', '2', 'numbers', 'in', 'them']
>>> token = string.split()[3]
>>> token
'should'
>>> token.isdigit()
False
>>> token is not token.isdigit()
True
>>> token = string.split()[1]
>>> token
'5'
>>> token is not token.isdigit()
True
Так что вам нужно просто удалить token is
из вашегокод, и это должно быть хорошо.