Python-Würfel-simulation
Bin ich ein bisschen fest auf eine Hausaufgaben-Frage, die simuliert würfeln. Die Frage fordert zu erstellen, die eine Funktion zurückgibt, die einen zufälligen integer-Wert von 1 bis 6, und erstellen Sie ein Haupt-Programm, dass der Benutzer gefragt wird, wie viele Würfel zu Rollen(muss begrenzt werden, um 5 Würfel), und ruft die Funktion zum drucken der generierten Werte. Bisher habe ich dieses:
import random
def dice(number_of_dice):
for i in range(0,number_of_dice):
return random.randint(1,6)
number_of_dice = input("How many dice would you like to roll? ")
while number_of_dice >5:
number_of_dice = input("You may only have a limit of 5 dice, enter a number under 5. " )
print dice(number_of_dice)
Wenn das Programm läuft, es gibt nur ein zufälliger integer-Wert, egal was der "number_of_dice" Eingang. Was genau ist hier falsch?
Jede Hilfe ist willkommen, danke.
ändern zurück zu der Ausbeute
Die return-Anweisung wird sofort wieder nach dem ersten Eintritt in die Schleife.
Die return-Anweisung wird sofort wieder nach dem ersten Eintritt in die Schleife.
InformationsquelleAutor user1679073 | 2012-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sobald Ihr
dice
- Funktion ausgeführt, und trifft auf diereturn
Anweisung für die erste Zeit, gibt es ohne weiter den rest derfor
Schleife.Um dies zu beheben, können Sie deklarieren eine lokale variable innerhalb
dice
hält die mehrere Ergebnisse, die Sie wollen, um zurückzukehren. Verwenden Sie Aussagen wie(Ich überlasse es Ihnen, die Lücken auszufüllen.)
Eine erweiterte Nutzung von Python umfasst die Verwendung der
yield
- Anweisung zur Rückgabe eines einzelnen Wertes aus eine Besondere Art von Funktion, die aufgerufen wird ein generator, die merkt sich, wo es war und kann später neu gestartet. Allerdings lohnt es sich, um einen festen Griff auf die Grundlagen, bevor Sie mit Funktionen wieyield
.InformationsquelleAutor Greg Hewgill
jetzt können Sie Zugang zu würfeln wie eine Liste ...
alles, was ich Tat, war ändern Sie eine Bezeichnung für ihn
Und fügen Sie eine for-Schleife.
dort entledigte ich mich der Schleife
InformationsquelleAutor Joran Beasley
Verwenden Sie eine while-Schleife wie diese
für die d in der 2d6 etc
InformationsquelleAutor