【问题标题】:add up even numbers in list using two nested for loops and the str() function使用两个嵌套的 for 循环和 str() 函数将列表中的偶数相加
【发布时间】: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

【问题讨论】:

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

标签: python python-3.x string list python-2.7


【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2011-09-02
        • 2020-03-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 2018-04-04
        • 1970-01-01
        相关资源
        最近更新 更多