Как мне разрешить моей программе добавить сумму четных чисел между двумя числами, введенными пользователем? ИСПОЛЬЗОВАНИЕ PYTHON - PullRequest
0 голосов
/ 27 января 2019

Я должен включить функцию в свой код, и поэтому я написал код ниже, но я не знаю, как добавить все четные числа между двумя числами, введенными пользователем.Он печатает только четные числа, но не добавляет их.

def sum_of_two_no(num1, num2):
    for evenno in range(num1, num2 + 1):
        if evenno % 2 == 0:
            print (evenno)
num1 = 0
num2 = 0

num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number number: "))

sum_of_two_no(num1, num2)

Например: если пользователь ввел 1 для первого числа и 10 для второго числа, программа отобразит четные числаот 1 до 10, но не добавляет их.

Ответы [ 4 ]

0 голосов
/ 27 января 2019

Сумма всех четных чисел от 1 до n задается как n: th треугольное число : n(n+1)/2.Одновременно сумма 2, 4, ..., 2n равна n(n+1).Следовательно, мы можем вычислить это в O (1) как

def sum_of_two_no(num1, num2):
    # fix boundaries
    num1 = num1 // 2 - 1   # We subtract sum of 2, 4, ..., num1 - 2
    num2 = num2 // 2       # We add sum of 2, 4, ..., num2

    # Compute upper sum - lower sum
    return num2 * (num2 + 1) - num1 * (num1 + 1)
0 голосов
/ 27 января 2019

Попробуйте код

def sum_of_two_no(num1, num2):
    sum=0
    for i in range(num1,num2+1):
        if i%2==0:
            sum+=i
    return sum

print(sum_of_two_no(4,7))

Проблема с вашим кодом заключалась в том, что он не сохранял значение четных чисел, а только печатал его

Надеюсь, это поможет

0 голосов
/ 27 января 2019

Или вы можете просто пройтись по вечерам без проверки:

def sum_of_two_no(num1, num2):
    mysum = 0
    for evenno in range(start=num1+num1%2, stop=num2+1, step=2):
        mysum += evenno
    return mysum

num1% 2 гарантирует, что мы начнем с ближайшего четного числа.

Или вы можете однострочнопитонический путь:

evensum = sum([evenno for evenno in range(start=num1+num1%2, stop=num2+1, step=2)])
0 голосов
/ 27 января 2019
def sum_of_two_no(num1, num2):
    sum=0
    for evenno in range(num1, num2 + 1):
        if evenno % 2 == 0:
            sum+=evenno 
    return sum

Я предполагаю, что вы находитесь на начальной стадии обучения.Чтобы получить сумму, вы должны сделать что-то, чтобы сохранить сумму.Просто возьмите переменную и суммируйте все эти четные числа в ней, а затем просто верните ее.

...