inverseli 发表于 2018-2-11 11:32:53

def judge(L):
    temp = 0
    for i in range(1,len(L)-1):#忽略最后一个和第一个
      if sum(L[:i]) == sum(L):
            temp = 1
            print(i)
    if temp == 0:
      print('None')
      
list_L= [,
,
,
,
[1, 2, 4, 34, 54, 27, 49, 14, 36, 25, 68, 13, 35, 78, 60, 25,
17, 5, 9, 23, 2, 1, 8, 1, 33, 26, 1, 9, 11, 5, 5, 253, 47, 65, 56, 10]]
for L in list_L:
    judge(L)

丑帅哥 发表于 2018-2-11 12:45:39

def sum(list_name,list_lenth):
    sum_1=0
    sum_2=0
    for a in range(list_lenth):
      sum_1=sum_1+list_name
      for b in range(a+1,list_lenth):
            sum_2=sum_2+list_name
      if sum_1 == sum_2 :
            print('列表:{}\n 平衡点位序为:{} \n 平衡值为:{}'.format(list_name,a,list_name))
            break
      else:
            sum_2=0
    else:
      print('Nnone')
list1=
list2=
list3=
list4=
list5=
sum(list1,len(list1))
sum(list2,len(list2))
sum(list3,len(list3))
sum(list4,len(list4))
sum(list5,len(list5))

victor.xu 发表于 2018-2-11 13:41:07

def seek_balance(lis):
    n = 0
    if len(lis) % 2 == 1:
      while n < len(lis):
            if sum(lis[:n]) != sum(lis):
                n += 1
            else:
                break
    else:
      print('error')
    return (n,lis)
lis1 = eval(input('请输入一个数组:\n'))
(index1,result1) = seek_balance(lis1)
print('the index of the list: ', index1,'\n')
print('the Balance Point of the list: ',result1)

YBKathus 发表于 2018-2-11 13:47:06

a = eval(input("请输入列表:"))
for i in range(1,len(a)-1):
    if sum(a[:i]) == sum(a):print("平衡点为",i+1)


我这算不算偷懒了

125zl 发表于 2018-2-11 19:21:12

from math import *
L = [,\
    ,\
    ,\
    ,\
    ]

for i in range(5):
    x = 0
    for j in range(1,len(L) - 1):
      c1 = 0
      for k in range(j):
            c1 = c1 + L
      if c1 == sum(L) - c1 - L:
            print(L)
            x = x + 1
    if x == 0:
      print(None)

大头目 发表于 2018-2-12 13:54:36

def Check_num(list1):
       
        sum1 = 0
        sum2 = 0
        for i in range(1,len(list1)-1):
               
                a = list1
                b = list1
               
                for x in a:
                        sum1 += x
                       
                for y in b:
                        sum2 += y
               
                #其实这一段可以用这一句话代替if sum(list1[:i]) == sum(list1):
                if sum1 == sum2:
                        return list1
               
                sum1 = 0
                sum2 = 0
                       
print(Check_num())
print(Check_num())
print(Check_num())
print(Check_num())
print(Check_num())

Elastcio 发表于 2018-2-14 10:43:31

def find(l):
    sum_of_list = sum(l)
    first_part = 0
    for i in range(len(l)-1):
      first_part += l
      if first_part == (sum_of_list -l)/2:
            return(i+1)
    return "Not Find"
l1 =
l2 =
l3 =
l4 =
l5 =
for each in (l1, l2, l3, l4, l5):
    try:
      print(find(each),each)
    except TypeError:
      print(find(each))


6 4
Not Find
Not Find
Not Find
Not Find

南城顾她 发表于 2018-2-23 22:28:47

def main():
    a =
    for x in range(len(a)):
      if sum(a[:x]) == sum(a):
            print(a)
            break
    else:
      print('None')



main()

graceasyi 发表于 2018-3-14 11:30:07

一个列表可能有多个平衡点,比如:,加上这种情况。

def slice(list1):
    balance = []
    for i in range(2, len(list1)-1):
      if sum(list1[:i]) == sum(list1):
            balance.append(])
    return balance if len(balance) else None


l1 = [, , ,
      , [1, 2, 4, 34, 54, 27, 49, 14, 36, 25, 68, 13, 35,
    78, 60, 25, 17, 5, 9, 23, 2, 1, 8, 1, 33, 26, 1, 9, 11, 5, 5, 253, 47, 65, 56, 10], ]

for i in l1:
    result = slice(i)
    if result is None:
      print("该列表无平衡点!")
    else:
      print("该列表有%d个平衡点,平衡点为:" % len(result))
      for s in result:
            print("第%d个元素:%d。" % (s, s))

结果:
该列表有1个平衡点,平衡点为:
第6个元素:4。
该列表无平衡点!
该列表无平衡点!
该列表无平衡点!
该列表无平衡点!
该列表有3个平衡点,平衡点为:
第2个元素:3。
第3个元素:-3。
第4个元素:3。

刘文华 发表于 2018-5-20 10:50:06

哈哈

DavidCowboy 发表于 2018-8-17 15:51:25

list1 =
count = len(list1)//2
print(sum(list1[:count]))
print(sum(list1))

if sum(list1[:count]) == sum(list1):
    print('平衡點位置是:' , count)
else:
    print('None')

計算結果都沒有平衡點,而且第5個數組是36個,無法計算

foxiangzun 发表于 2019-1-14 12:06:36

list1 =
list2 =
list3 =
list4 =
list5 = [1, 2, 4, 34, 54, 27, 49, 14, 36, 25, 68, 13, 35, 78, 60, 25, 17, 5, 9, 23, 2, 1, 8, 1, 33, 26, 1, 9, 11, 5, 5,
         253, 47, 65, 56, 10]

def getBalancePoint(list) :
      flag, flagCommon, flagPoint = 0, 0, 0
      for i in list :
                flagCommon += i
      for j in range(len(list) - 1) :
                flag += list
                if flag == flagCommon - flag - list :
                        print('列表%s平衡点的下标为:%d\n平衡的的值为:%d\n' % (list, j + 1, list))
                        flagPoint += 1
      if flagPoint == 0 :
                print('该列表无平衡点')

getBalancePoint(list1)
getBalancePoint(list2)
getBalancePoint(list3)
getBalancePoint(list4)
getBalancePoint(list5)

咕咕鸡鸽鸽 发表于 2019-4-18 10:28:26

def fun152(list1):
    if not len(list1)%2:
      return False

    res = []
    for i in range(1,len(list1)):
      if sum(list1[:i]) == sum(list1):
            res.append(list1)
    if res:
      return res
    else:
      return None

小贤啊哦 发表于 2020-6-4 15:13:30

def fun102(list1):
    for i in range(1,len(list1)):
      if sum(list1[:i])==sum(list1):
            print(list1)
      else:
            continue
页: 1 [2]
查看完整版本: Python:每日一题 152(悬赏篇)