使用两个嵌套的 for 循环和 str() 函数将列表中的偶数相加

Posted

技术标签:

【中文标题】使用两个嵌套的 for 循环和 str() 函数将列表中的偶数相加【英文标题】:add up even numbers in list using two nested for loops and the str() function 【发布时间】:2020-10-30 12:36:37 【问题描述】:

我正在尝试使用两个嵌套循环并使用 str() 从列表中获取所有偶数。我的代码可以正常工作,但不是我想要的,而且它没有我想要的。

 def evnNmbr ():
     a = int(input("Enter 1st integer (lower) "))
     b = int(input("Enter 2nd integer (higher) "))
     evnCnt = 0
     for i in range (a, b):
         if i % 2 == 0:
             evnCnt += 1
             s = str(i)
             print("Even number count is , ", s, evnCnt)



 evnNmbr()

Enter 1st integer (lower) 0 
Enter 2nd integer (higher) 21 
Even number count is , 0 1 
Even number count is , 2 2 
Even number count is , 4 3 
Even number count is , 6 4 
Even number count is , 8 5 
Even number count is , 10 6 
Even number count is , 12 7 
Even number count is , 14 8 
Even number count is , 16 9 
Even number count is , 18 10 
Even number count is , 20 11 

我想得到数字 a 和 b 之间的偶数总数。即:(2, 4, 6, 8 = 4 even numbers

【问题讨论】:

请提供示例输入和预期输出,以及您实际得到的输出 抱歉,您的预期输出是什么? 请提供预期的[最小的、可重现的示例](***.com/help/minimal-reproducible-example)。在您发布 MCVE 代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您指定的问题。 “缺少我正在寻找的东西”不是问题规范。你的程序挂起等待输入——不要让我们设计你的测试;用测试数据替换 input 语句。 【参考方案1】:

我添加了 b + 1 的范围,因为范围函数不包括最后一个值,所以如果你在末尾放一个偶数,它就不会计数。唯一需要修改的就是单独打印evnCnt 变量,所以它只显示总值。

def evnNmbr ():
    a = int(input("Enter 1st integer (lower) "))
    b = int(input("Enter 2nd integer (higher) "))
    evnCnt = 0
    for i in range (a, (b + 1)):
        if i % 2 == 0:
            evnCnt += 1
            # s = str(i)
            # print("Even number count is , ", s)
            # if you still want to visualize every number separately you can uncomment the lines
    print(f"Even number count is: evnCnt")


evnNmbr()

【讨论】:

【参考方案2】:

这将是您最简单的解决方案

def find_evens(a,b):
    l = []
    for i in range(a,b):
        if i % 2 == 0:
            l.append(i)

    answer = len(l)
    return answer

print(find_evens(1,21))

【讨论】:

【参考方案3】:

你只需要在最后打印一次结果evn_cnt

def evnNmbr():
    a = int(input("Enter 1st integer (lower) "))
    b = int(input("Enter 2nd integer (higher) "))
    evn_cnt = 0
    for i in range(a, b):
        if i % 2 == 0:
            evn_cnt += 1
    print("Even number count is", evn_cnt)

Enter 1st integer (lower) 10
Enter 2nd integer (higher) 88
Even number count is 39

【讨论】:

以上是关于使用两个嵌套的 for 循环和 str() 函数将列表中的偶数相加的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个for循环嵌套使用,要求内层循环结束,外层也一起结束。

有两个循环,他们是嵌套关系,在内循环中使用break将终止哪一个循环?

如何在一个循环执行ajax方法里面嵌套的ajax方法

在 Python 的嵌套 for 循环中使用 Continue 语句

如何使用嵌套的 for 循环将两个 2d(倾斜)数组相加?

为什么'I'在不同的函数中更改嵌套循环?