函数对数组的两侧进行求和和比较

2024-09-29 23:15:53 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,这是array = [1,2,3,4,3,2,1] 我想让计算机选择i=4并将四个中的左边和右边相加,然后比较它们是否相等,程序将i值打印到屏幕上。 现在我把它写在这里,只要i值为0,它就可以工作,但是如果我想搜索i>0,那么我就变得复杂了

这是我的主要节目:

# importing "array" for array creations
import array as arr

# Function to find sum  
# of array exlcuding the  
# range which has [a, b]  
def sumexcludingrange(li, a, b): # I FOUND THIS FUNCTION ONLINE BUT ALSO DIDN`T WORK EITHER.

    sum = 0 
    add = True

    # loop in li 
    for no in li: 

         # if no != a then add 
        if no != a and add == True: 
            sum = sum + no 

        # mark when a and b are found  
        elif no == a: 
            add = False
        elif no == b: 
            add = True

    # print sum 
    return sum 



#lis = [1, 2, 4, 5, 6] 
#a = 2
#b = 5

#sumexcludingrange(arr, 0, i-1) 


def my(arr):

    for i in range(len(arr)):   
        if i == 0: #this works when array is like [1,0,0,1] and i equals zero
         sum_left = arr[0]
         sum_right = sum(arr) - arr[0]
         while sum_left == sum_right:
           print(i)
           break
        elif i > 0 : # i 1 2 3 4 5 6 7 8 9.. 
          #sumleft and sumright are not right.. what is the issue here?          
          sum_left = sumexcludingrange(arr, 0, i-1)  #result is 16, sumexcludingrange function didn`t 
                                                      #work.
          print (sum_left)
          #print(i)

          sum_right == sum(arr) - sum_left
          #print(sum_right)
          #break
          while sum_left == sum_right:
            print(sum_left)
            print(sum_right)
            print("they are equal now")
            break

        else:
          print("index cannot be a negative number.")

something = arr.array('i', [1,2,3,4,3,2,1]) # len(arr) = 7
my(something)

在看到我需要另一个函数来比较数组的两侧后,我创建了一个新文件,并将其写入此处,然后以某种方式输出: 1. 13 13 2. 10 十,

#array[i] array[i+1] .. + array[length-1]
array = [1,2,3,4,5,6,7]  # 7 element so  length=7, 
for i in range(len(array)):  
 if i > 0 :
        ln = len(array) + 1
        sum_right = sum(array[i+1:ln])
        sum_left = sum(array) - sum_right
        print(i)
        print(sum_right)
        print(sum_right)

我的想法是:

# array[i]   i>0 i={1,2,3,4..}
sum_total = sum(arr) = array[0] + ..+ array[i-1] + array[i] + array[i+1] + ... + array[length-1]
sum_right = array[i+1] + .. + array[length-1]
sum_left = sum_total - sum_right 

有没有更好的方法来实现这一点


Tags: andnoinrightaddforlenif

热门问题