0

对于以下代码:

def isString(x):
  if type(x)==str:
    return True
  return False

当我在参数中输入一个字符串时,返回True后,为什么它也不返回False?我是 Python 新手,我很困惑,因为我认为它会返回 False,因为它不在 for 循环中,但事实并非如此。

4

3 回答 3

2

任何语言的答案都是一样的。return 语句表示从函数返回,返回一个可选值。它只能返回一次。在这种情况下,它从条件语句中返回。

顺便说一句,对于这样的类型检查,请使用is运算符。

if type(x) is str:
    return True

但实际上,真正推荐的进行字符串类型检查的方法是:

if isinstance(x, str):
    return True

但是,由于它很短,因此您根本不需要为此编写函数(学习目的除外)。只需使用isinstance(x, str)您本来会写的地方isString(x)

于 2012-12-10T23:44:56.933 回答
1

return语句终止函数。一旦你返回,函数就会停止。

于 2012-12-10T23:42:24.090 回答
1

顺便说一句,您的代码中没有 for 循环

当一个函数返回一些东西——任何东西——它就完成了。该return语句表示函数退出;不再进行任何处理。

如果 的类型xstr,则函数返回True。但是,如果 的类型x不是str,则永远不会输入 if 语句,True也不会返回。相反,函数继续执行 if 语句后的下一行,即return False-- 并且函数返回False

于 2012-12-10T23:42:05.400 回答