Fehlermeldung - Hilfe, Anfänger!

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
Ludi108
User
Beiträge: 1
Registriert: Donnerstag 23. April 2020, 18:50

Einen schönen guten Tag wünsch ich.

Das folgende Programm soll drei Kreisumfänge aufsummieren. Dafür ist jeweils der Kreisdurchmesser angegeben. Hab dafür folgenden simplen Code:

import math

def umfängeKreise(*d):
return sum(math.pi * d)

print(umfängeKreise(1, 2, 3))

mit der Fehlermeldung: TypeError: can't multiply sequence by non-int of type 'float'

Ich verstehe leider nicht warum das Programm die einzelnen Kreisumfänge nicht addieren will.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Ludi108 hat geschrieben: Donnerstag 23. April 2020, 18:58 Ich verstehe leider nicht warum das Programm die einzelnen Kreisumfänge nicht addieren will.
Weil du keine einzelnen Kreisumfänge hast. `d` ist eine Sequence aus mehreren Kreisumfängen. Du musst jeden einzelnen davon addieren.

Bei deinem Beispiel wäre das math.pi *1 + math.pi * 2 + math.pi * 3. Das lässt sich mit einer Schleife lösen. Alternativ kann man natürlich auch einfach math.pi * (1 + 2 + 3) nehmen.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Oder halt math.pi * sum(d).
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

snafu hat geschrieben: Freitag 24. April 2020, 04:15 Oder halt math.pi * sum(d).
Genau das meinte ich, aber ich dachte, ein wenig Eigenleistung schadet nicht.
Antworten