首页 > 解决方案 > 5.3.2:表达式Python中的函数调用

问题描述

这是提示:

用 num_a 和 num_b 中的较大者分配 max_sum,加上 num_y 和 num_z 中的较大者。只使用一个语句。提示:在一个表达式中调用 find_max() 两次。

这是我的代码:

    def find_max(num_1, num_2):
   max_val = 0.0

   if (num_1 > num_2):  # if num1 is greater than num2,
      max_val = num_1   # then num1 is the maxVal.
   else:                # Otherwise,
      max_val = num_2   # num2 is the maxVal
   return max_val

max_sum = 0.0

num_a = float(input())
num_b = float(input())
num_y = float(input())
num_z = float(input())

def find_max(num_a, num_b):
    max_val = 0.0
    
    if (num_a > num_b):
        max_val = num_a
    else: 
        max_val = num_b

def find_max(num_y, num_z):
    max_val = 0.0
        
    if (num_y > num_z):
        max_val = num_y
    else:
        max_val = num_z
            
        

print('max_sum is:', max_sum)

不知道我做错了什么。我也试过这个


def find_max(num_a, num_b):
    max_1 = 0.0
    
    if (num_a > num_b):
        max_1 = num_a
    else: 
        max_1 = num_b

def find_max(num_y, num_z):
    max_2 = 0.0
        
    if (num_y > num_z):
        max_2 = num_y
    else:
        max_2 = num_z
            
max_sum = (max_1 + max_2)

这给了我一条错误消息,即“max_1 未定义”,即使我已经定义了它。第一个代码只给了我一个 0.0 的输出。

有小费吗?谢谢!

标签: pythonfunctionexpression

解决方案


我不明白为什么你两次定义find_max函数,你甚至没有调用函数find_max(),最好使用 python 的内置max函数,你也可以使用 f-strings

只需使用:

num_input = 4
num_a, num_b, num_y, num_z = [float(input()) for _ in range(num_input)]
max_sum = max(num_a, num_b) + max(num_y, num_z)
print(f"max_sum is: {max_sum}")

推荐阅读