【问题标题】:Finding the Sum of integers in a list between numbers from user input in Python 3.xx在 Python 3.xx 中用户输入的数字之间的列表中查找整数的总和
【发布时间】:2017-10-16 03:32:56
【问题描述】:
num1 = int(input("Please enter the first number: "))
num2 = int(input("Please enter the second number: "))

numbers = []

even = 0
odd = 0

for x in range(num1, num2 + 1):
    numbers.append(x)

    if(x % 2 == 0):
        even += x
    elif(x % 2 == 1):
        odd += x

print("Even Sum =", even)
print("Odd Sum =", odd)

到目前为止,如果第一个数字小于第二个数字,那么当用户输入输入时,我就可以找到总和。我一直在尝试通过将输入放入列表来解决它。

示例: 请输入第一个数字:3 请输入第二个数字:9

但是当我先输入一个较小的数字时 - 请输入第一个数字:8 请输入第二个数字:2

它输出 - 偶数 = 0 奇数 = 0

到目前为止,我已经尽我所能尝试了所有方法,但似乎无法弄清楚。任何建议/意见将不胜感激。谢谢

【问题讨论】:

  • 如果num2小于num1,则永远不会进入循环,oddeven保持初始值。由于这看起来很合乎逻辑,因此我不确定您要问的实际问题是什么。
  • 注意:您可以简单地使用if x % 2 == 0: even += x; else: odd +=x。由于奇/偶是二元选择,因此不需要 if-elif。
  • 找到最低的放在第一位。取两者之差的绝对值加上放在第一位的那一项作为第二位。
  • @whackamadoodle3000 你可以使用元组打包/解包来切换这两个值:if num1 > num2: num1, num2 = num2, num1`。比使用绝对值更清楚。 如果这确实是 OP 遇到的问题。

标签: python


【解决方案1】:

您可以添加一个 if 语句来检查 num1 是否大于 num2。如果 num1 大于 num2,则将 num1 更改为 num2,将 num2 更改为 num1。

    num1 = int(input("Please enter the first number: "))
    num2 = int(input("Please enter the second number: "))
    ##-----------##
    if num1 > num2:
         num1,num2 = num2,num1

这会解决你的问题。

【讨论】:

    【解决方案2】:

    这是一个假设您想保留 num1/num2 的值的解决方案,

    num1 = int(input("Please enter the first number: "))
    num2 = int(input("Please enter the second number: "))
    
    numbers = []
    
    even = 0
    odd = 0
    
    start,end = (num1,num2) if num1 < num2 else (num2,num1)
    
    for x in range(start, end + 1):
        numbers.append(x)
    
        if x%2 == 0:
            even += x
        else:
            odd += x
    
    print("Even Sum =", even)
    print("Odd Sum =", odd)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 2014-11-29
      • 2013-12-06
      相关资源
      最近更新 更多