5.3.2:表达式Python中的函数调用
Posted
技术标签:
【中文标题】5.3.2:表达式Python中的函数调用【英文标题】:5.3.2: Function call in expression Python 【发布时间】:2021-08-13 06:22:49 【问题描述】:提示如下:
将 max_sum 赋值为 num_a 和 num_b 中的较大者,加上 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 is not defined”,即使我已经定义了它。第一个代码只给了我 0.0 的输出。
有什么建议吗?谢谢!
【问题讨论】:
提示提示您调用find_max
两次,而不是再定义两次。您可以使用内置的 max
函数来执行此操作,例如:max_sum = max(num_a, num_b) + max(num_y, num_z)
如果不清楚 - 删除两个额外的 def find_max
函数。 :) 函数的想法是它接受你给它的任何参数,并在函数中使用这些值。使用您的单个def find_max(num_1, num_2)
,尝试打印find_max(1, 2)
和find_max(20, 10)
的输出。该函数可以采用任何您给它的两个数字,包括变量数字(例如num_a
和num_b
)。
【参考方案1】:
我不明白为什么你两次定义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")
【讨论】:
【参考方案2】: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
num_a = float(input())
num_b = float(input())
num_y = float(input())
num_z = float(input())
max1 = find_max(num_a, num_b)
max2 = find_max(num_y, num_z)
max_sum = max1 + max2
print('max_sum is:', max_sum)
删除多余的两个find_max()
函数,然后为max1
和max2
调用两次。
输出:
20
30
13
56
max_sum is: 86.0
【讨论】:
以上是关于5.3.2:表达式Python中的函数调用的主要内容,如果未能解决你的问题,请参考以下文章