2016-09-24 1 views
0

의 중복을 제거합니다. 1 >> 2 3 4 5 6 7 입력을 입력하면 결과가 반환되지 않습니다. 내가 생각했던 while 루프일까요?while 루프는 아무것도 반환하지 않고 min max

2) 입력과 같이 >> 1 1 5 5 7 7 7 7 어떻게 1과 7의 중복을 제거합니까? ; min과 max의 중복을 의미합니다. 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

너무 감사합니다! 당신을위한 키스 – Perlinn

답변

0

들어하지 않는 것이 좋습니다 이것은 잘못된 것입니다 :

while count<numbers: 

당신은 목록에 번호를 비교한다. 그것은 유효하지만 예상 할 수있는 것은 아닙니다. count<numbers은 항상 true이므로 무한 루프에 빠져 있습니다. 사용해보기 :

>>> 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

나는 사용하고 싶지 않습니다. 오직 허용되는 시간은 – 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