Ich will nicht nur geben Sie eine Antwort, aber ich werde Sie einen Prozess zeigen, dass wird Ihnen helfen, dieses Problem (und andere, denen Sie später begegnen werden) zu lösen.
Schauen Sie sich auf Ihr Ziel:
Sie wollen in einer Liste von ganzen Zahlen passieren zu können, wie [4,2,3]
und geben das Ergebnis der Summen von 1 bis jede der ganzen Zahlen der Liste zu starten.
Versuchen Sie dies in so viele Teile zu brechen, wie Sie können:
Wie gehe ich in einer Liste von ganzen Zahlen auf eine Funktion? Wie mache ich etwas auf jedem Element einer Liste? Mit nur einer Ganzzahl n
(ein Element der Liste), wie berechne ich die Summe aller Zahlen 1 + 2 + ... + n
? Wie kann ich diese Nummer zurückgeben?
Ich glaube, der wichtigste Teil dieser Aufgabe besteht darin, bei einer ganzen Zahl die Summe aller Zahlen bis zu diesem Wert zu berechnen. Zum Glück gibt es dafür einen mathematischen Ausdruck. Bei einer Nummer n
ist die Summe aller natürlichen Zahlen kleiner oder gleich n
(n)(n+1)/2
. Wenn Sie diese Formel noch nicht gesehen haben, probieren Sie es einige Male aus. (1)(1+1)/2 = 2/2 = 1
, 2(2+1)/2 = 6/2 = 3
, (3)(3+1)/2 = 12/2 = 6
. Es läuft gut.
Der nächste Teil, auf den ich mich konzentrieren würde, ist, wie man das für jedes Element in der Liste tut. Wie wäre es mit einer Schleife, bei der wir jedes Element der Liste durchlaufen? Dies geschieht durch:
for i in your_list:
... #Enter code you want to happen for every element here
Falls Sie nicht damit vertraut, wie diese Schleifen arbeiten, wird die Schleife für jedes Element der Liste wiederholt und i
(oder was auch immer Variable, die Sie wollen, ist _
eine wirklich gemeinsame ein zu) wird das Element der Liste. Also, wenn Sie tut
your_list = [5,4,3,6]
for i in your_list:
print(i)
würde der Ausgang
sein kann
5
4
3
6
So versuchen Sie es mit der Zugabe Formel aus dem letzten Schritt.
your_list = [4,2,3]
for i in your_list:
natural_sum = (i)*(i+1)/2
print(natural_sum)
Ausgang:
10
3
6
So, jetzt sind wir die Summa bekommen, aber wir wollen nicht, sie zu drucken, wollen wir sie alle addieren. Dies ist Teil des Zurückgebens des Wertschritts. Wir möchten den gesamten Betrag zurückgeben. Nennen wir das tot_sum
für total_sum. Zuerst werden wir es auf Null initialisieren, dann fügen wir in der Schleife die natural_sum
s hinzu, die wir für total_sum haben.
tot_sum = 0
your_list = [4,2,3]
for i in your_list:
natural_sum = (i)*(i+1)/2
tot_sum += natural_sum
return tot_sum
Rückkehr jedoch tot_sum
nicht viel Sinn noch machen, weil wir nicht in Funktion sind. Dies ist Teil des ersten, was wir identifiziert haben: Wie gehen wir eine Funktion durch? Nun, wie folgt:
def your_sum(your_list):
tot_sum = 0
for i in your_list:
natural_sum = (i)*(i+1)/2
tot_sum += natural_sum
return tot_sum
#Then call it
print(your_sum([4,2,3]))
Klingt wie ein nettes Problem, um Ihnen zu helfen, Python zu lernen. Hast du schon etwas probiert? – Shadow
Was bedeutet ein Python geteilt in Ihrer Frage? Es ist die '1/python', die ich nicht verstehe. –
Es ist definitiv ein harter, haha, nur ein Anfänger zum Codieren. Ich habe mehrere Funktionen ausprobiert, aber keine war in der Nähe und alle waren weit entfernt von dem Ergebnis, das ich suchte. –