Visual Studio中Coderslang的max_of_three函数返回值异常求助
问题分析与解决
你的问题出在return语句的缩进位置上:原代码里return max被放在了第二个if z > max:的代码块内,这意味着只有当z比当前最大值大的时候,函数才会返回结果;其他情况函数没有返回值,Python会默认返回None。
比如第二次调用max_of_three(1,4,2):
- 初始max是1,y=4>1,max更新为4
- z=2不大于4,不会执行
return max,函数返回None
第三次调用max_of_three(1,2,2)同理,z等于当前max,也不会触发return,返回None。
修正后的代码
def max_of_three(x, y, z): max_val = x # 建议把变量名改成max_val,避免覆盖Python内置的max()函数 if y > max_val: max_val = y if z > max_val: max_val = z return max_val # 将return移到函数末尾,确保所有情况都能返回结果 first_result = max_of_three(1, -1, 3) print(first_result) second_result = max_of_three(1, 4, 2) print(second_result) third_result = max_of_three(1, 2, 2) print(third_result)
运行结果
3 4 2
内容的提问来源于stack exchange,提问作者Ndjsl01
相关产品推荐
相关产品推荐

