Как придешь

int('1') != int()
True

Я преобразовал строку в int, но выражение показывает, что это правда.

Сожалею.

Может ли кто-нибудь сказать мне, как добиться этого "Если это не int, то True"

-2
G-Ox7cd 8 Дек 2016 в 04:25

8 ответов

Лучший ответ

Как многие упоминают выше, int() возвращает 0. Чтобы определить, является ли переменная целым числом или нет, вы должны использовать type. так что вы можете проверить, является ли переменная int это, вызвав

type(int('1')) == int

Который вернет true. Если вы хотите проверить, не является ли переменная int, просто отмените приведенный выше код следующим образом:

type(int('1')) != int
3
Jin 8 Дек 2016 в 02:11
>>> int()
0
>>> int('1')
1

int() возвращает 0, поэтому выражение оценивается как 1 != 0, что соответствует True. Если вы имели в виду что-то вроде:

>>> isinstance(int('1'), int)
True
>>> type(int('1')) == type(int())
True
0
rassar 8 Дек 2016 в 01:28

Из полученного результата давайте посмотрим на это так.

функция int () выполняет приведение к введенным значениям, в вашем случае «1». Так что это просто говорит:

cast '1' to an integer --> int('1') which gives 1

cast 'nothing' --> int() which gives '0'

Поэтому, когда вы задаете вопрос int('1') != int(), что означает:

is the value of the cast int('1') different from the value of the cast int()

Тогда ответ должен по праву быть верным , что и есть. Но если бы вы спросили:

are their values the same, i.e. int('1') == int()

Тогда ответ был бы ложным

0
George Udosen 8 Дек 2016 в 01:43

Потому что int() это:

>>> int()
0

И, конечно же, 1 никогда не равен 0.

>>> type(int('1')) == int
True
>>> isinstance(int('1'), int)
True
2
Ignacio Vazquez-Abrams 8 Дек 2016 в 01:28

int() оценивается как 0

Ваш код в основном int('1') == 0

Это False

0
Thmei Esi 8 Дек 2016 в 01:28
isinstance(int('1'), int)

Или

type(int('1')) == type(int())

Оба возвращают true.

Ссылка на эту тему Как проверить, является ли тип переменной Строка?, я считаю, что это то же самое.

0
Community 23 Май 2017 в 10:30

По умолчанию int() равен 0

Для проверки вашего значения вы можете использовать Вы можете использовать тип: {{Х0}}

0
Shubham Namdeo 8 Дек 2016 в 01:30

Вы пытаетесь проверить, равно ли число его типу (и на самом деле не делаете этого). Не то. Числа - это числа, а типы - это типы. Чтобы проверить тип, используйте type() или isinstance():

>>> x = type(int('1'))
>>> y = isinstance(int('1'), int)
>>> x
<class 'int'>
>>> x == int
True
>>> y
True
3
TigerhawkT3 8 Дек 2016 в 01:28