Zwei Werte innerhalb eines Arrays addieren

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
lukas_234
User
Beiträge: 1
Registriert: Sonntag 9. Oktober 2022, 09:36

Hallo Zusammen,

ich muss folgende Hausaufgabe lösen:
Schreiben Sie eine Funktion, die mehrere Würfel gleichzeitig wirft und die Summe der Augenzahlen zurückgibt.

Die Funktion myDiceSum(numSeiten, anzahlWuerfel, anzahlWuerfe) soll anzahlWuerfel mit numSeiten gleichzeitig werfen, die Summe berechnen und dieses Experiment anzahlWuerfe oft wiederholen.

Beispiel:

myDiceSum(6, 2, 5) --> (4, 7, 12, 10, 8)


Dazu habe ich jetzt folgenden Code geschrieben:
import numpy as np
from random import randint

def myDiceSum(numSeiten: int, anzahlWuerfel: int, anzahlWuerfe: int) -> [int]:

dice=[]
summen=[]

for e in range(anzahlWuerfel):
for e in range(anzahlWuerfe):
e=randint(1, numSeiten)
dice.append(e)
summen=sum(dice)
return summen

Mein Problem ist jetzt, dass ich es immer nur hinkriege die Summe aller Augenzahlen oder alle Augenzahlen einzelnd auszugeben. Wie schaffe ich es, dass immer anzahlWuerfel (z. B. 2, 3,4) Werte innerhalb des Arrays addiert werden, sodass das gewünschte Ergebnis ausgegeben wird.
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

Variablennamen sollten keine Abkürzungen enthalten.Warum anzahlWuerfel aber numSeiten? anzahlSeiten wäre doch viel einleuchtender, oder da man in Oython Variablennamen grundsätzlich klein schreibt, anzahl_seiten.
Warum heißt die Funktion myDiceSum? Entweder Englisch oder Deutsch, aber nicht mal so und mal so. Ein my-Präfix ist niemals sinnvoll, weil das nicht zum Verstehen beiträgt. erzeuge_wuerfelsummen wäre z.B. genau das, was die Funktion macht.
`e` verwendest Du gleichzeitig für drei verschiedene Dinge. Das versteht doch keiner.
Dann solltest Du Dir anschauen, wann welche Liste mit welchen Werten gefüllt wird; das macht man am besten, wenn man sie den Inhalt bei jedem Schleifendurchgang per print ausgeben lässt und prüft, ob es wirklich das ist, was man möchte.
Antworten