如何允许我的程序在用户输入的两个数字之间添加偶数之和?使用PYTHON

时间:2019-01-27 14:48:02

标签: python python-3.3

我必须在代码中包含一个函数,因此我在下面编写了代码,但是我不知道如何在用户输入的两个数字之间添加所有偶数。它仅打印偶数,不将它们相加。

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 :(得分:1)

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

我认为您处于学习的初始阶段。要获得总和,您必须实际执行一些操作来存储总和。只需取一个变量并将所有偶数加起来,然后简单地将其返回即可。

答案 1 :(得分:1)

尝试输入代码

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))

您的代码的问题是它没有存储偶数的值,而只是打印了它

希望有帮助

答案 2 :(得分:1)

从1到n的所有偶数之和由第n个:triangular numbern(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)

答案 3 :(得分:0)

或者您也可以不检查就循环浏览

button

num1%2确保我们从最接近的偶数开始。

或者您也可以用pythonic方法将其单行:

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