Summe der Quadrate der ersten 20 natürlichen Zahlen ausgeben?
Hallo
Ich sollte ein Programm mit Python schreiben, dass die Summe der Quadrate der ersten 20 natürlichen Zahlen ausgibt. Kann mir da jemand helfen, zumindest für den Anfang? Wie muss ich vorgehen? Ich habe nämlich keinen Plan, wie ich das anstellen sollte...
LG Sonny
Also du meinst, dass man von 1² - 20² alle Ergebnisse ausgibt und sie dann addiert?
ja ich denke schon. Ich habe leider keine Lösungen, aber ich hätte auch das gemeint... LG
5 Antworten
Moin.
Ich mach das ganze mal Zeile für Zeile.
Also in Python:
for i in range(1, 21)
Also hat Zahlen 1 bis 20
Dann kurz was zu sogenannten f Strings:
Das ist ein String: 'Ich bin ein String.'
Das ist ein f String: f'Ich bin besser.'
Dat dolle an den Dinger ist, dass du Variablen einfacher einbauen kannst. Sagen wir wir wollen die Variable x einbauen:
f'Ergebnis: {x}'
Du siehst, um Variablen einzubauen machst du Mengenklammern um den Namen.
Das benutzen wir in der for Schleife:
for i in range(0, 21):
print(f'{i} zum Quadrat ist {i**2}')
Also wir bauen i ein, dass in der Reihenfolge 1, 2, 3, ..., 20 ist, und dann geben wir i**2 aus. Also i**2 ist das Quadrat.
Das wärs
kommt drauf an was dein ziel ist.
Gibt direkt formeln um die summe der ersten n quadratzahlen zu berechnen.
Also das kann man durchaus als Einzeiler lösen.
Was aber nicht viel programmierung braucht und wohl eher nicht gemeint ist.
Vermutlich sollst du mit Schrleifen und so, im Prinzip manuell, die einzelnen Quadratzahlen addieren.
sowas wie
sum=1^2;
print("1^2=1");
for (int i=2;i<=n;i++){
print(i+"^2="+i^2);
sum=sum+i^2;
}
print("Die Summe der ersten "+n+" Quadratzahlen ist "+sum);
ist jetzt pseudo java code.
aber lässt sich analog in python schreiben.
wenn du for schleifen nicht magst, geht auch while.
musst halt ganz am anfang int i=1 setzen.
und am ende der while schleife ein i++ schreiben
Hallo,
es gibt dafür eine Summenformel:
SUMME (k=1 bis n) über k²=n³/3+n²/2+n/6.
Vielleicht hilft Dir die.
Herzliche Grüße,
Willy
print(sum(x**2 for x in range(1,21)))
Kurz und schmerzlos.
Das ist nun mal der Operator für Potenzierung. https://docs.python.org/3/reference/expressions.html#the-power-operator
x**y ist x^y - alternativ math.pow(x,y). Und natürlich könnte ich auch x*x anstatt x**2 schreiben, ich wollte aber näher an der Potenz bleiben.
Bin zwar auch erst neu aber hab dieses Programm erstellt.
d = 0
z = 0
while d < 20:
d = d + 1
z = d * d + z
print(z)
welchen sinn machen die Sternchen bei x ** 2 ? Warum reicht nicht x².......Welche Besonderheit braucht Python da ?