即使条件为假,为什么还要执行行? [重复]

问题描述 投票:-1回答:1

我有一个函数,该函数在此函数内接收字符串参数和条件,该条件检查此参数是int还是float。尽管此条件的结果为假,但仍执行以下行。

我使用PyCharm IDE和Python 3.8

这里是代码。

number1 = 17
number2 = 17.1
testStr = "Test string"


def define_type(argument01):
    if type(argument01) == str:
        print(argument01 + " - string")
    if type(argument01) == int or float:
        print(str(argument01) + " - int or float")


define_type(testStr)

输出:

Test string - string
Test string - int or float

Process finished with exit code 0
python-3.x if-statement pycharm conditional-statements
1个回答
1
投票
if type(argument01) == int or float:

可以重写

if (type(argument01) == int) or float:

所以即使argument01也不是int测试始终为真,从某种意义上来说,您的测试是]

if float:

您想要:

if type(argument01) == int or type(argument01) == float:
© www.soinside.com 2019 - 2024. All rights reserved.