2017-10-16 64 views
-5

#編寫一個名爲series_sum()的函數,該函數提示用戶輸入非負數 #interger n。如果用戶輸入負數,函數應返回無 #否則該函數應返回以下系列的和 #1000 +(1/1)** 2 +(1/2)** 2 +(1/3)** 2 +(1/4)** 2 ... +(1/N)** 2創建一個計算系列總和的函數

def series_sum(): 
    n = input("Please enter a number greater than 0") 

回答

-1
def series_sum(): 
    n = input("Please enter a number greater than 0") 
    if type(n,str): 
     try: 
      n = int(n) 
     except: 
      print 'enter integer value' 
      return 
    if n >=0: 
     sum = 1000 
     for i in range(1,n+1): 
      sum += (1./i)**2 
     return sum 
    return     
+0

它發生了點擊錯誤。我仍在努力。 –

0

完整功能:

def series_sum(n): 
    if n >= 0: 
     return 1000 + sum((1/x) ** 2 for x in range(1, n + 1)) 

或者與相同的功能,但是明確否定:

def series_sum(n): 
    if n >=0: 
    return 1000 + sum((1/x) ** 2 for x in range(1, n + 1)) 
    if n < 0: 
    return None 
+0

如果你是新手,不要忘記提高答案,評論等,這有助於。 :) – combinatorist

0

函數需要帶一個參數n。

接下來....對於總和......範圍(1,n + 1)將創建一個從1到n的可迭代對象,您可以在for循環中使用該對象。在你的else語句下,創建一個變量'total'..它從1000開始。對於1到n範圍內的每個值,你將在總值的平方上加1。

def series_sum(): 
    n = input("Please enter an integer greater than 0") 
    n = int(n) 
    if n < 0: 
      return None 
    else: 
      numbers = range(1,n+1) 
      total = 1000 
      for number in numbers: 
       total = total + 1/n**2 
      return total