Python函数返回None异常咨询:温度判断返回值不符预期
解决你的Python函数返回None问题
嘿,作为刚学Python的新手,遇到这个问题太正常啦,我来帮你捋清楚~
首先,你提到已经“指定返回fahrenheit”,但其实问题出在你的函数逻辑没有覆盖所有可能的情况。Python函数的规则是:如果执行到函数末尾都没碰到return语句,就会默认返回None——哪怕你在某些分支里写了return,没覆盖到的分支还是会走默认逻辑。
举个例子,我猜你的函数大概是这样写的:
def check_temperature(fahrenheit): if fahrenheit > 90: return "hot" if fahrenheit < 30: return "cold" # 这里!当温度在30到90之间时,没有任何return语句
当fahrenheit的值在30到90之间时,两个if条件都不满足,函数就会一步步执行到末尾,然后返回None。你以为的“指定返回fahrenheit”,可能是误解了函数的返回逻辑——只有明确写了return 某个值的地方,才会返回对应内容,没写的分支不会自动返回参数本身哦。
怎么修正?
你只需要给所有情况都加上明确的return即可,比如:
方案1:给中间温度区间返回描述词
def check_temperature(fahrenheit): if fahrenheit > 90: return "hot" elif fahrenheit < 30: return "cold" else: return "moderate" # 或者其他你想返回的内容
方案2:中间情况返回fahrenheit本身
如果你确实想在非热非冷的时候返回fahrenheit的值,那可以这样写:
def check_temperature(fahrenheit): if fahrenheit > 90: return "hot" elif fahrenheit < 30: return "cold" return fahrenheit # 处理30-90之间的情况
这样不管输入什么温度,函数都有对应的return语句,就不会再返回None啦。
记住一个小要点:Python函数的返回完全由return语句控制,没有return的分支必然返回None,这是新手很容易踩的坑哦~
内容的提问来源于stack exchange,提问作者user3574939
相关产品推荐
相关产品推荐

