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