能否将自定义函数获取的值存储到变量中?附代码示例
能否将自定义函数的返回值存储到变量中?
嘿,当然可以!不过你当前的代码里,desks_for_group函数只是把计算结果打印出来,并没有把结果返回给调用它的地方——这就是你没法直接用它的结果求和的原因。因为函数里用print(desks)的话,函数默认会返回None,所以你现在的total_desks_required其实是在把三个None相加,肯定会出问题。
要解决这个问题,只需要把函数里的print(desks)改成return desks,这样函数就会把计算好的desks值返回出去,你就能把它存到变量里,或者直接用来求和了。
修改后的完整代码示例
def desks_for_group(x): students_per_desk = 2 if x % 2 != 0: # 简化判断逻辑,直接处理奇数情况即可 x += 1 desks = x / students_per_desk return desks # 替换print为return,返回计算结果 group_1 = int(input()) group_2 = int(input()) group_3 = int(input()) # 现在可以直接将函数返回值用于求和计算 total_desks_required = desks_for_group(group_1) + desks_for_group(group_2) + desks_for_group(group_3) print(total_desks_required)
补充说明
- 当你调用
desks_for_group(group_1)时,函数会返回计算好的课桌数,这个值既可以直接赋值给变量(比如desks_1 = desks_for_group(group_1)),也能像示例里那样直接参与运算。 - 原代码里
if x % 2 == 0: x = x的逻辑完全冗余,直接处理奇数的情况就能达到同样效果,让代码更简洁。
内容的提问来源于stack exchange,提问作者Sriganesh Talak




