为什么运行以下Python代码时输出结果中会额外出现None值
问题原因
- Python 内置的
print()函数仅负责向控制台输出内容,本身没有有效返回值,执行后默认返回None。你代码中将print('hot')的执行结果赋值给变量x,此时x的取值就是None,而print('hot')执行时已经直接输出了第一行的hot。 - 你调用函数时使用了
print(foo(66)),foo(66)执行完成后会返回变量x也就是None,外层的print会把这个返回值再次输出,就出现了额外的None。
另外你的原代码还存在边界判断漏洞:当temp=25或者temp=15时,所有条件分支都不会触发,函数会默认返回None,建议调整条件覆盖全部取值场景。
修复方案
可任选一种调整逻辑:
- 函数内部仅返回温度描述字符串,由外层统一打印
def foo(temp): if temp >= 25: return 'hot' elif temp >= 15: return 'warm' else: return 'cold' print(foo(66))
- 函数内部已经完成打印逻辑,调用时不需要额外套
print
def foo(temp): if temp >= 25: print('hot') elif temp >= 15: print('warm') else: print('cold') foo(66)
内容的提问来源于stack exchange,提问作者dragonmaster
相关产品推荐
相关产品推荐

