2014-10-08 86 views
0

我需要在python中生成一個程序,該程序從1-100中生成10個隨機數,並使用循環將其存儲在列表中。然後第二個循環應顯示所述列表,然後計算偶數和奇數元素的總和以顯示它們。這是我迄今爲止,非常感謝任何幫助。謝謝(Python)陷入一個randint列表的總和的跳過範圍值

import random 

def main(): 
    numlist = [0] * 10 

    for r in range(10): 
     numlist[r] = random.randint(1,100) 
    print(numlist) 

    list_length = len(numlist) 
    print('The number of elements in the list is', list_length) 

更具體地說,這是我堅持的部分。我必須添加奇數和偶數元素的總和。我嘗試過的每一項工作都只給了我所有元素的總和。

for x in range(0, 10, 2): 
     numlist[x] = numlist 

    print('The Sum of the odd numbers is ', sum(numlist)) 


main() 
+0

你期待着'numlist [x] = numlist'做什麼? – NPE 2014-10-08 19:46:54

+0

按x中的範圍定義numlist,然後通過打印添加總和。我知道這個符號只是一個佔位符。 – 2014-10-08 19:48:45

回答

2
import random 
nums = [random.randint(1,100) for _ in range(10)] 

您可以使用lambda表達式和filter

evenSum = sum(filter(lambda i : i%2 == 0, nums)) 
oddSum = sum(filter(lambda i : i%2, nums)) 

或做一些簡單的輔助功能

def isEven(x): 
    return x % 2 == 0 

def isOdd(x): 
    return x % 2 == 1 

evenSum = sum(filter(isEven, nums)) 
oddSum = sum(filter(isOdd, nums)) 
+0

真的很整齊,經常! – 2014-10-08 20:35:39

1

使用自己的代碼:

def main(): 
    numlist = [] # create empty list to add randints to 
    for r in range(10): 
     numlist.append(random.randint(1,100)) # append to the list 
    list_length = len(numlist) 
    print('The number of elements in the list is', list_length) 
    odd = 0 
    even = 0 
    for num in numlist: 
     if num % 2: # if num mod 2 has a remainder, num is odd 
      odd += num 
     else: # else num is even 
      even += num 
    print('The Sum of the odd numbers is {} and even numbers is {}'.format(odd,even)) 

您可以用列表比較替換第一環:

numlist = [random.randint(1,100) for _ in range(10)] 
-1

無法理解的實際問題(hahehehe!) 至於我也明白了,你要打印的奇數和偶數之和從randint()生成的列表中。那麼我剛剛編輯你的代碼;)

所以這裏是簡單的完成代碼!

投票如果它有幫助!

 import random 
     def main(): 
      odd_sum=0 
      even_sum=0 
      numlist = [0] * 10 
      for r in range(10): 
       numlist[r] = random.randint(1,100) 
      print numlist 
      list_length = len(numlist) 
      print('The number of elements in the list is', list_length) 

      for i in numlist: 
       if (i%2 == 1):   #the remainder is 1 if the number is odd 
        odd_sum = odd_sum + i #add the odd_numbers 
       elif(i%2 == 0):   #the remainder is 0 if the number is even  
        even_sum = even_sum + i #add the even_numbers 
       else: 
        print "No need of this else part !" 
      print "Odd_sum = ",odd_sum 
      print "Even_sum = ",even_sum 
     main() 
+0

它可以幫助用戶,如果你解釋你的答案*爲什麼你的代碼更好或解決了問題。 – SnareChops 2014-10-08 20:41:47