如何获得这里所有元素的总和?

问题描述

def isempty(qu):
    if qu==[]:
        return True
    else:
        return False

def push(qu,item):
    qu.append(item)
    if len(qu)==1:
        front=rear=0
    else:
        rear=len(qu)-1

def pop(qu):
    if isempty(qu):
        return "underflow"
    else:
        item=qu.pop()[0]
        if len(qu)==0:
            front=rear=0
        return item

def peek(qu):
    if isempty(qu):
        return "underflow"
    else:
        front=0
    return qu[front]

def display(qu):
    if isempty(qu):
        print("Queue Empty")
    else:
        front=0
        rear=len(qu)-1
        print(qu[front],"<--- front")
        for a in range(1,rear):
            print(qu[a])
        print(qu[rear],"<--- rear")
def summation():        
    def sum_arr(arr,size):
       if (size == 0):
         return 0
       else:
         return arr[size-1] + sum_arr(arr,size-1)
    n=int(input("Enter number of elements in the queue for addition="))
    queue=[]
    for i in range(0,n):
        queue.append(item)
    print("The list is:")
    print(queue)
    print("sum of items :")
    b=sum_arr(queue,n)
    print(b)

queue=[]
for i in range(0,4):
    print("----Queue Operations----")
    print("1.Push/Enqueue")
    print("2.Pop/Dequeue")
    print("3.Peek")
    print("4.display Queue")
    print("5.Exit")
    print("6.Summation")
    ch=int(input("Enter your choice="))
    if ch==1:
        item=int(input("Enter element="))
        push(queue,item)
        
    elif ch==2:
        item=pop(queue)
        if item=="underflow":
            print("Queue Empty")
            
        else :
            print("Popped item=",item)
           
    elif ch==3:
        item=peek(queue)
        if item=="underflow":
            print("Queue Empty")
            
        else:
            print("Front most=",item)
           
    elif ch==4:
        display(queue)
        
    elif ch==5:
        break
    elif ch==6:
        summation()
        
    else:
        print("Invalid Choice")

这是我们在这里使用的全部代码。...

这实际上是使用列表来实现队列

仅在此处必须使用队列方法

Enter element=4
Enter element=5
Enter element=6
Enter the number of elements in the queue for addition=3
The list is:
[6,6,6]
the sum of items :
18

这里的错误是给定的元素是4,5,6,但是只有最后一个元素'6'用于查找三次和...

我希望我回答了评论中问到的所有问题.....

任何带有一点解释的想法都受到高度赞赏。...

解决方法

Python禅:简单胜于复杂

无论您构建什么自定义函数,它都永远不会比内置函数快。
l = [6,6,6]
total = sum(l)
print('The list is: {}'.format(l)
print('the sum of items : {}'.format(total))

如果您仍然需要自定义功能

def arr_sum(arr):
    holder = 0
    if len(arr) == 0:
        return 0
    else:
        holder = [holder + i for i in arr if type(i) == int]
        return holder