Python 函数在不返回语句的情况下返回None
我刚刚学习了(正在学习)Python中函数参数的工作原理,我开始毫无理由地使用它进行实验,当时:Python 函数在不返回语句的情况下返回None,python,function,Python,Function,我刚刚学习了(正在学习)Python中函数参数的工作原理,我开始毫无理由地使用它进行实验,当时: def jiskya(x, y): if x > y: print(y) else: print(x) print(jiskya(2, 3)) 给出了输出: >>> 2 None None从何而来?那是什么?问题是你写了打印jiskya(2,3)。您正在将jiskya的返回值传递给print函数jiskya本身打印x或
def jiskya(x, y):
if x > y:
print(y)
else:
print(x)
print(jiskya(2, 3))
给出了输出:
>>>
2
None
None
从何而来?那是什么?问题是你写了打印jiskya(2,3)
。您正在将jiskya
的返回值传递给print
函数jiskya
本身打印x
或y
,这就是您看到2的原因。但是,printjiskya(2,3)
语句中的print
本身执行时没有参数
对于口译员来说,这是对发生的事情的简化:
print jiskya(2,3)
>> Executing jiskya with arguments 2, 3
>> jiskya evaulates `print x`
>> 2 is printed
>> Function jiskya exits with no return value
print None
>> None is printed
问题是您编写了
打印jiskya(2,3)
。您正在将jiskya
的返回值传递给print
函数jiskya
本身打印x
或y
,这就是您看到2的原因。但是,printjiskya(2,3)
语句中的print
本身执行时没有参数
对于口译员来说,这是对发生的事情的简化:
print jiskya(2,3)
>> Executing jiskya with arguments 2, 3
>> jiskya evaulates `print x`
>> 2 is printed
>> Function jiskya exits with no return value
print None
>> None is printed
它是你打印出来的函数的返回值。如果没有return语句(or),则会在函数末尾添加一个隐式的
return None
您可能希望返回函数中的值,而不是打印它们:
def jiskya(x, y):
if x > y:
return y
else:
return x
print(jiskya(2, 3))
它是你打印出来的函数的返回值。如果没有return语句(or),则会在函数末尾添加一个隐式的
return None
您可能希望返回函数中的值,而不是打印它们:
def jiskya(x, y):
if x > y:
return y
else:
return x
print(jiskya(2, 3))
您正在进行两次打印,第一次打印在函数的主体中,第二次打印函数的结果,实际上没有打印结果 你应该这样做:
def yourfunction(x, y):
if x > y:
return y
else:
return x
那么
>>> print yourfunction(2, 3)
2
您正在进行两次打印,第一次打印在函数的主体中,第二次打印函数的结果,实际上没有打印结果 你应该这样做:
def yourfunction(x, y):
if x > y:
return y
else:
return x
那么
>>> print yourfunction(2, 3)
2
“无”从何而来
功能
那是什么
这是函数返回的结果
在Python中,每个函数都返回一些东西。它可以使用一个元组“有多个东西”,也可以使用None
“什么都没有”,但它必须返回一些东西。这就是我们如何处理无法指定返回类型这一事实的方法(这毫无意义,因为您没有为任何其他内容指定类型)。当解释为打印字符串时,None
将替换为字符串“None”
None
是一个特殊的对象,用来表示没有任何真实的东西。它的类型是NoneType
(它是该类的一个实例)。无论何时不显式返回任何内容,都会隐式返回None
您编写此函数是为了打印两个值中的一个x
或y
,但不返回任何内容。因此,返回了None
。然后,您要求Python打印调用该函数的结果。因此它调用了函数(打印其中一个值),然后将返回值(即None
)打印为文本“None”
“无”从何而来
功能
那是什么
这是函数返回的结果
在Python中,每个函数都返回一些东西。它可以使用一个元组“有多个东西”,也可以使用None
“什么都没有”,但它必须返回一些东西。这就是我们如何处理无法指定返回类型这一事实的方法(这毫无意义,因为您没有为任何其他内容指定类型)。当解释为打印字符串时,None
将替换为字符串“None”
None
是一个特殊的对象,用来表示没有任何真实的东西。它的类型是NoneType
(它是该类的一个实例)。无论何时不显式返回任何内容,都会隐式返回None
您编写此函数是为了打印两个值中的一个
x
或y
,但不返回任何内容。因此,返回了None
。然后,您要求Python打印调用该函数的结果。因此,它调用了函数(打印其中一个值),然后将返回值(即None
)打印为文本“None”。Ya,基本上是在函数中使用print语句作为返回信息的一种方式。你不应该这样做。Print与return语句不同。如果您只是想让函数给出答案,而不使用none,只需键入jiskya(2,3)。您将看到函数抛出了什么,因为函数中有print语句。如果您在函数中键入“return”,如果函数调用之前没有“print”,它将不会提供任何信息 Ya,基本上您在函数中使用print语句作为返回信息的一种方式。你不应该这样做。Print与return语句不同。如果您只是想让函数给出答案,而不使用none,只需键入jiskya(2,3)。您将看到函数抛出了什么,因为函数中有print语句。如果您在函数中键入“return”,如果函数调用之前没有“print”,它将不会提供任何信息 好的,执行此操作时要开始:
print(jiskya(2, 3))
你得到了与此相当的东西:
print(print(2))
那么,到底发生了什么?print(2)
正在打印出2,并返回外部调用打印的None
。很简单
现在看看这个:
def hello():
return 2
如果您这样做:
print(hello())
得到2是因为如果你打印出一个函数,你会得到任何返回值。(返回值由返回变量表示
现在即使print
没有
def test1():
a = "First code...!!!"
return a
type(test1())
Output: str