以下代码:
def isString(x):
if type(x)==str:
return True
return False
当我在参数中输入一个字符串时,在返回True后,为什么它也不会返回False?我是Python的新手,我很困惑,因为我认为它会返回False,因为它不在for循环中,但它没有。
答案 0 :(得分:2)
任何语言的答案都是一样的。 return语句表示从函数返回,返回一个可选值。它只能返回一次。在这种情况下,它返回条件语句。
顺便说一句,对于那样的类型检查,请使用is
运算符。
if type(x) is str:
return True
但实际上,进行字符串类型检查的真正推荐方法是:
if isinstance(x, str):
return True
但是,由于它太短,所以根本不需要为此编写函数(除了学习目的)。只需使用isinstance(x, str)
,否则您将以isString(x)
编写。
答案 1 :(得分:1)
顺便说一下,代码中没有for循环
当一个函数返回一些东西 - 任何东西 - 它就完成了。 return
语句表示函数退出;没有更多的处理。
如果x
的类型为str
,则该函数返回True
。但是,如果x
的类型不是str
,则永远不会输入if语句,并且不会返回True
。相反,函数继续到if语句之后的下一行,即return False
- 函数返回False
答案 2 :(得分:1)
return
语句终止该函数。一旦你返回,该功能就会停止。