2016-09-24 13 views
0

1)入力>> 1 2 3 4 5 6 7 を入力すると結果は何も返されません。私が想定していたwhileループである必要がありますか?Whileループは何も返さず、min maxの重複を削除します

2)>> 1などの入力用1 1 5 5 7 7 7 7 1と7の重複を削除するにはどうすればよいですか? ; minとmaxの重複を意味します。 私はminとmaxの重複を削除して入力数を平均化する予定です。 max()min()関数とlist(set(x))を組み合わせるか、別の方法がありますか?

ここにpythonの新機能があります。単に許可されている間。

while count<numbers: 

あなたがリストに番号を比較している:これは間違っている

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

ありがとうございました!あなたのためのキス – Perlinn

答えて

0

について示唆していません。それは有効ですが、期待することはできません。 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 
+0

私は使用したくありません。ただwhileが許されます – Perlinn

+0

それは問題にあるはずの重要な制限です...とにかく、 'n zvone

+0

すみません!とにかく私はあなたが言ったことをしたが、プログラムは何も戻っていないようだ。近視が私の目に入っている – Perlinn

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) 
+0

ありがとう、あなたのためにキスしてくれてありがとう! – Perlinn

関連する問題