Функция выдает результат True, когда вводится 0, и я не знаю почему. Python 3 - PullRequest
0 голосов
/ 10 июля 2020

Это код

def reverse(arg):
    if arg == False or arg == True:
        return not arg
    else:
        return("boolean expected")





по какой-то причине при запуске функции с 0 в качестве параметра она возвращает True вместо «ожидаемого логического» * ​​1004 *

1 Ответ

1 голос
/ 10 июля 2020

Это идеальное место для использования функции isinstance Python:

замените строку 2 этой функции на:

if isinstance(arg, bool):

, и вы должны получить желаемый эффект.

Это необходимо, потому что Python легко преобразует целые числа в bools, поэтому функция isinstance делает проверку более строгой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...