无法理解此输出

时间:2019-02-26 09:32:24

标签: python python-3.x

这是我的代码:

def temp(c):
    f = c * 9/5 + 32
    if c <= -273:
        print("not possible")
    else:
        return f
print(temp(-273))

它正在输出正确的答案,但我不明白为什么只要满足if条件,它为什么还要打印None

2 个答案:

答案 0 :(得分:1)

当我们调用内置的打印功能时,该功能需要一个值进行打印。在您的代码中,调用print(temp(-273))时,条件的if部分被执行,但是没有返回值。默认情况下,不显式返回任何内容的函数将返回None。这就是在您的代码中调用print()之后发生的情况。

答案 1 :(得分:1)

此:

def temp(c):
    f= c* 9/5 + 32
    if c <= -273:
        print(" not possible")
    else:
        return f

等于这个:

def temp(c):
    f= c* 9/5 + 32
    if c <= -273:
        print(" not possible")
    else:
        return f
    return None

因为Python中的函数总是返回某些内容,并且如果没有其他返回内容,则该内容为None

因此,if-else -block的两种情况基本上是这样的:

c <= -273:
    print(" not possible")
    print(None)  # the functions return value

c > -273:
    print(c * 9/5 + 32)  # the functions return value