1. 程式人生 > >python筆試題-平衡點問題: 假如一個數組中的元素,其前面的部分等於後面的部分,那麼這個點的位序就是平衡點。

python筆試題-平衡點問題: 假如一個數組中的元素,其前面的部分等於後面的部分,那麼這個點的位序就是平衡點。

平衡點問題

假如一個數組中的元素,其前面的部分等於後面的部分,那麼這個點的位序就是平衡點。
比如一個列表numbers = [1, 3, 5, 7, 8, 25, 4, 20]。25前面的總和為24,25,後面的總和也是24,那麼這個點就是平衡點。
要求編寫程式,尋找並返回任意一個列表的平衡點。

def balance_point(thy_list):
    num = len(thy_list)
    if num >= 3:
        for i in range(num):
            if i == 0:
                pass
            else
: list1 = thy_list[:i] # 將傳入的列表切片,將一個列表分成2個列表 list2 = thy_list[i+1:] sum1 = sum(list1) # 對切片後的列表分別求和 sum2 = sum(list2) if sum1 == sum2: return '平衡點:%d,其值為%d' % (i, thy_list[i]) return '無平衡點'
else: return '列表長度不夠!' if __name__ == '__main__': print(balance_point([1, 3, 5, 7, 8, 25, 4, 20])) print(balance_point([1, 3, 5, 7, 8, 25, 4, 26])) print(balance_point([1, 3, 5, 7, 8, 7, 5, 4])) print(balance_point([1])) print(balance_point([100, 200, 100])) # 結果: # 平衡點:5,其值為25
# 無平衡點 # 平衡點:4,其值為8 # 列表長度不夠! # 平衡點:1,其值為200