2017-10-16 2 views
-5

# schreiben Sie eine Funktion namens series_sum(), die den Benutzer für eine nicht negative # interger n fordert. Wenn der Benutzer ein Negativ eingibt, sollte die Funktion zurückkehren. Keine # Andernfalls sollte die Funktion die Summe der folgenden Serien zurückgeben: # 1000 + (1/1) ** 2 + (1/2) ** 2 + (1/3) ** 2 + (1/4) ** 2 ... + (1/n) ** 2Erstellen Sie eine Funktion, die die Summe einer Serie berechnet

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

Antwort

-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

Es passierte durch Klickfehler. Ich arbeitete immer noch daran. –

0

Volle Funktionalität:

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

Oder mit derselben Funktionalität , aber Negative explizit machen:

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

Falls du neu bei SO bist, vergiss nicht, Antworten, Kommentare usw. zu wählen, die geholfen haben. :) – combinatorist

0

Die Funktion benötigt ein Argument, n.

Weiter .... für den sum ... Bereich (1, n + 1) wird ein iterierbares Objekt von 1 bis n erzeugt, das Sie in einer for-Schleife verwenden können. Erstellen Sie unter Ihrer else-Anweisung eine Variable "total". Sie beginnt mit 1000. Für jeden Wert im Bereich von 1 bis n fügen Sie dem Gesamtwert 1 den Wert quadriert hinzu.

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