python-3.x 你能解释一下为什么没有打印输出吗?

vjrehmav  于 7个月前  发布在  Python
关注(0)|答案(3)|浏览(80)
def great(a,b,c):
    if(a>b and a>c):
        print("a is greater")
    elif(b>a and b>c):
        print("b is greater")
    else:
        print("c is greater")
        a=great(12,3,1)
        print(a)

字符串

你能解释一下为什么输出中没有打印吗?

k75qkfdt

k75qkfdt1#

在python缩进问题中,你的函数调用没有正确缩进,这就是为什么它没有打印任何东西

def great(a,b,c):
    if(a>b and a>c):
        print("a is greater")
    elif(b>a and b>c):
        print("b is greater")
    else:
        print("c is greater")
a=great(12,3,1)
print(a)

字符串

zc0qhyus

zc0qhyus2#

函数great()不返回任何内容。在python中,当函数中没有返回任何内容时,将返回默认值“None”。因此,当用途:
a=很大(12,3,1)
它返回None值。该值被赋给a。因此,当你打印a时,你得到None。
查看此链接了解更多:
https://realpython.com/python-return-statement/#:python:text = Implicit%20return%20Statements,-A%20Python%20function&text=That%20default%20return%20value%20will%20always%20be%20None%20.&text=If%20you%20don't% 20 supply,None%20as%20a%20return%20value.

balp4ylt

balp4ylt3#

您提供的代码有几个问题,使其无法按预期工作。让我们一步一步地了解它们:
1.压痕:代码的最后两行缩进不正确。它们是else块的一部分,这不是您想要的。您应该将它们取消缩进,使其与ifelif块处于同一级别。
1.函数调用:您试图在自身内部调用great函数,这是一种递归形式。但是,您没有为递归定义基本情况,因此它将无限期运行,导致堆栈溢出错误。
下面是代码的更正版本:

def great(a, b, c):
    if a > b and a > c:
        print("a is greater")
    elif b > a and b > c:
        print("b is greater")
    else:
        print("c is greater")

great(12, 3, 1)

字符串
通过这些修改,代码应该可以正常工作了。当你用值(12,3,1)调用great函数时,它会正确识别“a is greater”并打印出该消息。

相关问题