2016-06-21 9 views
0
''' 
Your task is to write a function which returns the sum of following series upto nth term(parameter). 

Series: 1 + 1/4 + 1/7 + 1/10 + 1/13 + 1/16 +... 
''' 

Art der nicht-trivial, aber ich versuchte round(1,2) zu verwenden 1.00 zu zeigen, aber es zeigt 1.0, was kann ich 1.00 in Python zeigen?1 Rundung auf zwei schwimmende Ziffern

def series_sum(n): 
    # Happy Coding ^_^ 
    sum = 0 
    for i in range(n): 
     sum += 1/(1+(3*i)) 
    return round(sum, 2) 

Dies ist ein Rückgabewert für eine Kodierung Herausforderung in codewars kein Druck. also soll es zurückkehren und du schreibst einfach die Methode.

+1

Was Version von Python verwenden Sie? –

+0

3.4.3 ist die Version –

+0

Sind Sie sicher, dass sie ein Float zurück wollen? Das macht keinen Sinn. Was ist das eigentliche Problem/Fehler, die Sie bekommen? – jonrsharpe

Antwort

0

Verwenden format Funktion:

return format(sum, '.2f') 
+0

hat funktioniert! Vielen Dank! –

+1

@MonaJalal Beachten Sie, dass dies ** immer noch eine Zeichenfolge ** ist, Sie geben keinen Float zurück. Und die Website, die Sie verwenden, ist nicht öffentlich sichtbar, sodass mehr Informationen in der Frage hilfreich gewesen wären. – jonrsharpe

2

Bei der numerischen Berechnung sollten die Nachkommastellen keine Rolle spielen. Ich glaube, Sie wollen eine String-Darstellung mit 2 Dezimalstellen.

In Python 2.x, dann würden Sie tun:

>>> "%.2f"%1.0 
'1.00' 

In Python3.x, würden Sie tun:

>>> "{:.2f}".format(1.0) 
'1.00' 
+0

Dies ist ein Rückgabewert kein Druck –

+0

Bitte werfen Sie einen Blick auf die aktualisierte Frage –

+0

Ich zeigte Ihnen die Möglichkeit, es in eine Zeichenfolge mit einer bestimmten Anzahl von Dezimalstellen zu konvertieren. Was Sie damit tun - es zurückgeben oder drucken - liegt ganz bei Ihnen. – SuperSaiyan