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