Python猜数字游戏:higher_lower函数返回值问题求助
解决Python higher_lower函数返回值问题
嘿,我一眼就看出问题出在哪了——你把print()和return的用法搞混啦!
你当前的代码里,在每个条件分支里用print()输出了对应的字符串,但函数的需求是返回这些字符串,而不是仅仅打印出来。而且你最后写的return **[......]部分完全没必要,因为只要在每个分支里用return返回目标字符串,函数执行到这里就会直接结束,不需要额外的return语句。
给你修正后的正确代码:
def higher_lower(num): if num > 25: return "higher" elif num < 25: return "lower" else: return "correct"
简单解释下:
- 当输入的
num大于25时,函数直接返回字符串"higher",执行到这里函数就终止了 - 同理,
num小于25时返回"lower",等于25时返回"correct"
你可以这样测试这个函数:
print(higher_lower(30)) # 输出 lower print(higher_lower(20)) # 输出 higher print(higher_lower(25)) # 输出 correct
之前你尝试的几种return写法都是错误的:
return higher_lower会返回函数对象本身,不是需求的字符串return higher_lower(num)会导致递归调用函数,容易出现无限递归或者EOF错误return num只会返回输入的数值,自然不符合返回指定字符串的需求
内容的提问来源于stack exchange,提问作者C245
相关产品推荐
相关产品推荐

