#吃饱了撑的做了一个递归版
def mul(*numbers):
#如果不传数字,抛出错误
for i in numbers:
if type(i)!=int:
raise TypeError
#如果传空参数,抛出错误
if numbers==():
#如果只传一个数字,返回该数字,加这一条是为了防止继续删到空和上一个混起来没法处理了,也避免了IndexError
elif len(numbers)==1:
return(numbers[0])
#多余一个数字,则递归,pop删掉末尾并且返回它,与删掉后的数字序列继续求值相乘,直至只剩一个数字,注意传进来的数字序列是元组,不能更改,所有要先变成数组
else:
num=list(numbers)
return(num.pop() *mul(*num))
Sign in to make a reply
bzny虫
#吃饱了撑的做了一个递归版
def mul(*numbers):
#如果不传数字,抛出错误
for i in numbers:
if type(i)!=int:
raise TypeError
#如果传空参数,抛出错误
if numbers==():
raise TypeError
#如果只传一个数字,返回该数字,加这一条是为了防止继续删到空和上一个混起来没法处理了,也避免了IndexError
elif len(numbers)==1:
return(numbers[0])
#多余一个数字,则递归,pop删掉末尾并且返回它,与删掉后的数字序列继续求值相乘,直至只剩一个数字,注意传进来的数字序列是元组,不能更改,所有要先变成数组
else:
num=list(numbers)
return(num.pop() *mul(*num))