如何编写支持可变参数的Python多参数减法函数?
实现支持可变参数的顺序减法函数
需求:编写一个Python函数,对传入的多个参数按从左到右的顺序执行减法操作,用户可传入可变数量的参数,例如
subt(a, b, c…)需返回a-b-c-…的计算结果。
现有尝试
最初编写了仅支持两个数的减法函数:
def subt(a, b): return a-b
随后扩展为支持三个数的版本:
def subt(a, b, c): return a-b-c
当前问题
希望将函数扩展为支持可变参数,但不知道如何完成以下代码框架:
def subt(…): diff = for i in range(…,len(…)): diff = diff - […] return diff
完整解决方案
补全后的函数代码
def subt(*args): if not args: return 0 diff = args[0] for i in range(1, len(args)): diff -= args[i] return diff
代码细节说明
*args是Python中接收可变数量位置参数的语法,所有传入的参数会被打包成一个元组args- 先处理边界情况:如果没有传入参数,返回0(你也可以根据需求抛出
ValueError异常,要求至少传入一个参数) - 初始化
diff为第一个参数args[0],作为减法运算的初始值 - 循环从索引1开始遍历剩余参数,依次用当前的
diff减去每个后续参数(diff -= args[i]等价于diff = diff - args[i]) - 最后返回最终的计算结果
测试用例
print(subt(10, 3, 2)) # 输出:5(10-3-2=5) print(subt(5)) # 输出:5(只有一个参数时直接返回该参数) print(subt(20, 5, 3, 2)) # 输出:10(20-5-3-2=10) print(subt()) # 输出:0(无参数时返回0)
内容的提问来源于stack exchange,提问作者Naveen Kaulwar
相关产品推荐
相关产品推荐

