虽然循环根本没有返回任何内容并且删除了min max的重复项

时间:2016-09-24 06:38:07

标签: python

1)输入输入>> 1 2 3 4 5 6 7 结果什么都没有。必须是我认为的while循环?

2)也用于输入,例如>> 1 1 1 5 5 7 7 7 7 如何删除1和7的副本? ;意味着最小和最大的重复。 我计划通过删除min和max的副本来平均输入的数字。 我是否将max()min()函数与list(set(x))结合起来,还是有另一种方法?

这里是python的新手。虽然只允许。不建议

even_sum, odd_sum = 0,0
evencount, oddcount = 0,0
count=0
n=0

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

while count<numbers:
     if numbers[n]%2==0:
         evencount = evencount +1# len(numbers)
         even_sum += num
         count=count+1
         n=n+1
else:
        oddcount = oddcount+1#len(numbers)
        odd_sum += num
        count=count+1
        n=n+1

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



print numbers 
numbers.remove(max(numbers))
numbers.remove(min(numbers))

average = sum(numbers)/float(len(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)

print average

2 个答案:

答案 0 :(得分:0)

这是错误的:

while count<numbers:

您正在将数字与列表进行比较。这是有效的,但它不会做你所期望的。 count<numbers总是如此,所以你陷入无限循环。试试吧:

>>> 1000000 < [1, 2]
True

您要做的是反复遍历所有数字。

for number in numbers:
    if number % 2 == 0:
        ...

您不需要count而且您也不需要n

此外,else:应缩进,否则永远不会使用此代码执行。

让分模式(不含for

n = 0
odd_count = 0
odd_sum = 0

while n < len(numbers):
    number = numbers[n]
    if number % 2:
        odd_count += 1
        odd_sum += number
    n += 1

# "even" values can be calculated from odds and totals

答案 1 :(得分:0)

#This is modified code i did mark (#error) where your program didn't work 
even_sum, odd_sum = 0,0
evencount, oddcount = 0,0
count=0
n=0

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

while count<len(numbers): #error thats a list you have to convert that in to int
     if numbers[n]%2==0:
         evencount = evencount +1# len(numbers)
         even_sum += numbers[n] #error index and variable not defined 
         count=count+1
         n=n+1
     else:         #indented error
        oddcount = oddcount+1#len(numbers)
        odd_sum += numbers[n] #error index and variable not defined
        count=count+1
        n=n+1

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

numbers.remove(max(numbers))
numbers.remove(min(numbers))

average = sum(numbers)/float(len(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)