Die Summe der Zahlen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Davidcopperfield
User
Beiträge: 8
Registriert: Freitag 12. November 2021, 22:15

Hallo gute Leute !
Ich bin ein Anfaenger und bereite ich mich auf einen Python-Kurs vor. Daraufhin stiess ich auf das folgende Problem:
Summe der Zahlen
Schreib in der Datei ein Programm, welches die Summe aller Zahlen von 0 bis <b>n</b> zählt, wobei <b>n</b> vom Benutzer angegeben wird.

Beispiel: n= 4
10

Meine Vorstellung lautet:

n = input("Geben Sie n ein:")
print(n)
for Liste in range(0, int(n)
if n > 0
sum(Liste)
else:
print("Geben Sie eine Ziffer oder Zahl größer als Null an")
continue

Mein Pycharm Community sowie Visual Studio Code erkennt es nicht. Ich versuchte auf viele Weisen.
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Bitte schreibe deinen Code immer zwischen Code-Tags. Die erscheinen automatisch, wenn du den </>-Button im vollständigen Editor drückst. Dann bleiben die Einrückungen erhalten - und die sind bei Python nun einmal essentiell.

Ich mache das hier einmal mit deinem Code:

Code: Alles auswählen

n = input("Geben Sie n ein:")
print(n)
for Liste in range(0, int(n)
    if n > 0
        sum(Liste)
    else:
        print("Geben Sie eine Ziffer oder Zahl größer als Null an")
        continue
Der Code kommt aber gar nicht am Compiler vorbei, denn er hat Syntax-Fehler. Die solltest du erst einmal beheben.
Und dann solltest du mal für jede einzelne Zeile aufschreiben, was du denkst, was sie tut. Und dann musst du prüfen, ob sie auch wirklich das tut, was du denkst. Du hast zum Beispiel eine Variable "Liste" - aber im ganzen Programm gibt es gar keine Liste - und eine Zahl wird nicht dadurch zu einer, dass man sie so benennt.
Benutzeravatar
__blackjack__
User
Beiträge: 14076
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Code: Alles auswählen

print(sum(range(int(input("Geben Sie n ein: ")))))
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
pillmuncher
User
Beiträge: 1530
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

n muss auch dazugezählt werden:

Code: Alles auswählen

>>> from operator import add
>>> from functools import partial
>>> from toolz.functoolz import compose
>>> inc = partial(add, 1)
>>> program = compose(print, sum, range, inc, int, input)
>>> program("Geben Sie n ein: ")
Geben Sie n ein: 4
10
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
__blackjack__
User
Beiträge: 14076
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Upsi, da habe ich ein ``+ 1`` vergessen. 😳
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
kbr
User
Beiträge: 1508
Registriert: Mittwoch 15. Oktober 2008, 09:27

Oder so:

Code: Alles auswählen

n = int(input('bitte eine ganze positive Zahl eingeben: '))
print((n + 1) * (n // 2) + (n + 1) // 2 if n % 2 else (n + 1) * (n // 2))
karolus
User
Beiträge: 144
Registriert: Samstag 22. August 2009, 22:34

Mit dem "Luxus" einer dritten Codezeile:

Code: Alles auswählen

n = int(input('bitte eine ganze positive Zahl eingeben: '))
m, r = divmod(n,2)
print(m*n+(n*r or m))
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum so kompliziert?

Code: Alles auswählen

n * (n + 1) // 2
Davidcopperfield
User
Beiträge: 8
Registriert: Freitag 12. November 2021, 22:15

Vielen Dank gute Leute! :)

Selbstverstaendlich funktionieren diese drei sehr gut:
Die erste Loesung:

Code: Alles auswählen

n = int(input('Gib bitte N durch: '))
print(n * (n + 1) //2)
Die zweite Loesung:

Code: Alles auswählen

n = int(input('Gib bitte N ein: '))
print((n + 1) * (n//2) + (n + 1) // 2
	if n % 2
	else (n + 1) * (n // 2))
Die dritte Loesung:

Code: Alles auswählen

n = int(input('Gib bitte N an: '))
m, r = divmod(n, 2)
print(m*n+(n*r or m))
Antworten