奇偶数和输出n

2024-10-02 12:36:41 发布

您现在位置:Python中文网/ 问答频道 /正文

INPUTS 1

"1 2 3 4 5 6" <<< YES WITH SPACE

Results returned

  • The summation of even and odd numbers are 12 and 6 [x]
  • The difference between biggest and smallest number is 5 [✓]
  • The count of even numbers and odd numbers are 6 6 [x]

输入2

1 2 3 4

Results returned

  • The summation of even and odd numbers are 6 and 4 [✓]
  • The difference between biggest and smallest number is 3 [✓]
  • The count of even numbers and odd numbers are 4 4 [X]

我的代码怎么了?有人能开导我吗???你知道吗

even_sum, odd_sum = 0,0


    s = raw_input("Please Input a series of numbers")
    numbers = map(int, s.split())

    for num in numbers:
        if num%2 ==0:
                    evencount = len(numbers)
                    even_sum += num

    else:
                    oddcount = len(numbers)
                    odd_sum += num



    max = max(numbers)
    min = min(numbers)
    difference = max - min

    print numbers
    print "The summation of even and odd numbers are " + str(even_sum) + " and " + str(odd_sum)
    print "The difference between biggest and smallest number is " + str(difference)
    print "The count of even numbers and odd numbers are " + str(evencount) + " " + str(oddcount)

Tags: andofthebetweenaresumevenodd
3条回答

你的else直接在for下对齐,它也可以取else,因此偶数的和是正确的,而奇数的和是for循环中num的最后一个值。您应该移动else块以与if对齐。你知道吗

你的问题就在这些方面

evencount = len(numbers)
oddcount = len(numbers)

在这两种情况下,你最后都会说

evencount = all numbers i've encountered 
oddcount = all numbers i've encountered

这就是为什么您得到4,4作为evencount和oddcount,因为您有4个数字作为输入。你知道吗

把它改成

evencount = 0
oddcount = 0
for num in numbers:
    if num % 2 ==0:
        evencount += 1
        even_sum += num

    else:
        oddcount += 1
        odd_sum += num

没有足够的代表发表评论,但我认为答案可能是你的else语句没有正确缩进。。。你知道吗

我也认为偶数和奇数的逻辑是错的,我认为应该是这样的:

evencount = evencount+1

试试这个:

even_sum, odd_sum = 0,0
evencount, oddcount = 0,0

s = raw_input("Please Input a series of numbers")
numbers = map(int, s.split())

for num in numbers:
    if num%2 ==0:
                evencount = evencount +1# len(numbers)
                even_sum += num

    else:
                oddcount = oddcount+1#len(numbers)
                odd_sum += num



max = max(numbers)
min = min(numbers)
difference = max - min

print numbers
print "The summation of even and odd numbers are " + str(even_sum) + " and " + str(odd_sum)
print "The difference between biggest and smallest number is " + str(difference)
print "The count of even numbers and odd numbers are " + str(evencount) + " " + str(oddcount)

相关问题 更多 >

    热门问题