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
答案 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)