Discuss / Python / 复习作业

复习作业

Topic source

bzny虫

#1 Created at ... [Delete] [Delete and Lock User]

#吃饱了撑的做了一个递归版

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))


  • 1

Reply