这是我的代码:
def temp(c):
f = c * 9/5 + 32
if c <= -273:
print("not possible")
else:
return f
print(temp(-273))
它正在输出正确的答案,但我不明白为什么只要满足if条件,它为什么还要打印None
。
答案 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