Пример суммы и деления (Python) - PullRequest
2 голосов
/ 17 ноября 2009
>>> sum((1, 2, 3, 4, 5, 6, 7))
28
>>> 28/7
4.0
>>> sum((1,2,3,4,5,6,7,8,9,10,11,12,13,14))
105
>>> 105/7
15.0
>>>

Как мне автоматизировать эту сумму и деление, используя цикл?

Редактировать: Возможно, я не был понятен - я хочу, чтобы цикл продолжал делать сумму (кратную 7, например 1-7, 1-14, 1-21 и т. Д.), Пока она не достигнет х (х пользовательский ввод)

Ладно, разобрался:

def sum_and_div_of_multiples_of_7(x):
  y = 7
  while (y <= x):
    mof7 = range(1,y)
    print ('mof7 is', mof7)

    total = sum(mof7)
    print ('total =', total)

    div = total/7
    print ('div =', int(div), '\n')

    y = y+7     # increase y

x = 70
sum_and_div_of_multiples_of_7(x)

Ответы [ 5 ]

5 голосов
/ 17 ноября 2009

Прямой ответ:

def sum_to_number_divided_by_seven(i):
  return sum(range(i+1)) / 7

Более эффективный ответ:

def sum_to_number_divided_by_seven(i):
  return (i*(i+1))/14
1 голос
/ 17 ноября 2009
def sumdiv7(limit):
    for i in range(limit):
        result = sum(range(i*7)) / 7
        print "For", i, ", sumdiv = ", result

Пример:

>>> sumdiv7(4)
For 0 , sumdiv =  0
For 1 , sumdiv =  3
For 2 , sumdiv =  13
For 3 , sumdiv =  30

Трюк очень прост, вы хотите сложить кратные 7,

Чтобы получить ih, кратное 7, это просто i*7

range - это функция python для получения списка чисел от 0 до x

sum суммирует список.

Просто соедините эти кусочки

0 голосов
/ 17 ноября 2009

если я правильно понимаю вашу проблему. Вы хотите иметь возможность принимать пользовательский ввод - x, а затем суммировать значения 1-7, а затем делить на 7, если коэффициент выше, чем x, останавливаться на достигнутом, в противном случае продолжать суммировать 1-14, делить на 7 и проверять это частное. - и продолжить в кратных 7?

Мое легкое решение -

x = input('user input - enter your value here')
y = 0
i = 1
while(x > y):
    q = sum(range(1, i*7+1))
    y = q/7
    print y
    i+=1

print "userinput:  %d" % (x)
print "iterations:  %d" %(i)
print "end value: %d" %(y)
0 голосов
/ 17 ноября 2009

Моя версия:

def sum_of_nums_divided_by_7(num):
    return reduce(lambda x, y: x+y, range(num)) / 7
0 голосов
/ 17 ноября 2009

Я не уверен, что вы хотите, но, возможно, это что-то вроде:

sum(range(x*7+1))/7
...