为了账号安全,请及时绑定邮箱和手机立即绑定

函数在没有返回语句的情况下返回None。

函数在没有返回语句的情况下返回None。

jeck猫 2019-06-17 16:14:10
函数在没有返回语句的情况下返回None。我刚刚学习了函数参数是如何在Python中工作的,然后我开始无缘无故地对它进行实验,当时:def jiskya(x, y):     if x > y:         print y    else:         print xprint(jiskya(2, 3))出狱:>>> 2 None在哪里None来自?那又是什么?
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

它是函数的返回值,您可以打印出来。如果没有返回语句(或只是一个return没有争论),含蓄的return None添加到函数的末尾。

您可能希望返回函数中的值,而不是打印它们:

def jiskya(x, y):
    if x > y:
        return y    else:
        return xprint(jiskya(2, 3))


查看完整回答
反对 回复 2019-06-17
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

好的,当您这样做时,首先:

print(jiskya(2, 3))

你得到了与此相当的东西:

print(print(2))

那么,怎么回事?这个print(2)正在打印出2,并返回None它是由外部调用打印的。够直截了当的。

现在看看这个:

def hello():
    return 2

如果你这样做了:

print(hello())

你得到2,因为如果你打印出一个函数,你会得到return价值是。()return值由return someVariable.

现在即使print和大多数函数一样,它没有括号,只是在这方面有点特殊。打印返回什么?没什么。所以当你print print someVariable,你会得到None作为第二部分,因为打印的返回值是None.

正如其他人所说:

def jiskya(x, y):
    if x > y:
        print(y)
    else:
        print(x)

应重写:

def jiskya(x, y):
    if x > y:
        return y    else:
        return x


查看完整回答
反对 回复 2019-06-17
?
阿晨1998

TA贡献2037条经验 获得超6个赞

“零”是从哪里来的?

功能。

那又是什么?

这就是函数返回的内容。

在Python中,每个函数都返回一些内容。它可以是使用元组的“多个事物”,也可以是使用None但它必须还一些东西。这就是我们如何处理这样一个事实,即没有办法指定返回类型(这是没有意义的,因为您没有为其他任何内容指定类型)。当解释为用于打印的字符串时,None替换为字符串“None”。

None是一个特殊的对象,它应该表示没有任何真实的东西。它的类型是NoneType(这是该类的一个实例)。每当您没有显式返回任何内容时,您都不会隐式地返回任何内容。

您编写了一个函数来打印这两个值中的一个xy但不能归还任何东西。所以None被归还了。然后请Python打印调用函数的结果。因此,它调用函数(打印其中一个值),然后打印返回值,即None,作为文本“无”。


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 1403 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信