2017-10-16 9 views
-5

#ユーザーに非負のメッセージを表示するserial_sum()という関数を書き込みます。 #interger nユーザがネガを入力した場合、関数はNoneを返す必要があります。 #そうでない場合、関数は次の系列の合計を返します。 #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

関数は1つの引数nをとる必要があります。

次のようにします。for ... range(1、n + 1)はforループで使用できる1からnまでの反復可能オブジェクトを作成します。あなたのelseステートメントの下で、変数 'total'を作成します。これは1000から始まります.1からnの範囲の各値に対して、合計値の2乗に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 
関連する問題