如何计算输入的三个数中最大值与最小值的平均值?
解决思路与代码修改方案
核心问题分析
你现有代码中的largest和smallest函数仅负责打印结果,没有返回最大值、最小值的数值,导致无法直接调用这两个值计算平均值。解决的关键是让函数返回对应数值,再基于返回值完成平均值计算。
分步解决方法
修改函数,添加返回值
在现有函数末尾添加return语句,将找到的最大值、最小值返回,而非仅打印:def largest(num1, num2, num3): if (num1 > num2) and (num1 > num3): largest_num = num1 elif (num2 > num1) and (num2 > num3): largest_num = num2 else: largest_num = num3 print("The largest of the 3 numbers is : ", largest_num) return largest_num # 返回最大值 def smallest(num1, num2, num3): if (num1 < num2) and (num1 < num3): smallest_num = num1 elif (num2 < num1) and (num2 < num3): smallest_num = num2 else: smallest_num = num3 print("The smallest of the 3 numbers is : ", smallest_num) return smallest_num # 返回最小值获取数值并计算平均值
调用修改后的函数,接收返回的最大值、最小值,用(最大值 + 最小值) / 2计算平均值并打印:
完整代码示例
number1 = int(input('Enter First number : ')) number2 = int(input('Enter Second number : ')) number3 = int(input('Enter Third number : ')) def largest(num1, num2, num3): if (num1 > num2) and (num1 > num3): largest_num = num1 elif (num2 > num1) and (num2 > num3): largest_num = num2 else: largest_num = num3 print("The largest of the 3 numbers is : ", largest_num) return largest_num def smallest(num1, num2, num3): if (num1 < num2) and (num1 < num3): smallest_num = num1 elif (num2 < num1) and (num2 < num3): smallest_num = num2 else: smallest_num = num3 print("The smallest of the 3 numbers is : ", smallest_num) return smallest_num # 获取最大、最小值 max_num = largest(number1, number2, number3) min_num = smallest(number1, number2, number3) # 计算并打印平均值 average = (max_num + min_num) / 2 print(f"The average of largest and smallest numbers is : {average}")
简化方案(可选)
如果不需要自定义找最大最小值的逻辑,直接用Python内置的max()和min()函数可以大幅精简代码:
number1 = int(input('Enter First number : ')) number2 = int(input('Enter Second number : ')) number3 = int(input('Enter Third number : ')) max_num = max(number1, number2, number3) min_num = min(number1, number2, number3) print("The largest of the 3 numbers is : ", max_num) print("The smallest of the 3 numbers is : ", min_num) average = (max_num + min_num) / 2 print(f"The average of largest and smallest numbers is : {average}")
内容的提问来源于stack exchange,提问作者Jaxjo
相关产品推荐
相关产品推荐

