Seite 2 von 2

Verfasst: Dienstag 2. Juni 2009, 13:07
von numerix
Edit: Doppelpost durch Hänger in der Boardsoftware ...

Verfasst: Dienstag 2. Juni 2009, 13:23
von ichbinsisyphos
numerix hat geschrieben:Edit: Doppelpost durch Hänger in der Boardsoftware ...
Siehst du das "x"-Button neben "edit" und "zitat"? Vor ein paar Sekunden hättest das noch benutzen können ;-)

Verfasst: Dienstag 2. Juni 2009, 13:25
von HerrHagen
Ich hab nichts gegen randrange. Nimm es. Ich würde auch keinen großen Wind darum machen. Das ist IMHO eine reine Geschmacksfrage.

Verfasst: Dienstag 2. Juni 2009, 13:48
von BlackJack
@numerix: `randint()` ist IMHO einfach die verständlichere Alternative um eine Zahl von 1 bis 6 zu würfeln. Das hat nichts mit "Slicing" oder Indexen zu tun.

Verfasst: Dienstag 2. Juni 2009, 14:04
von numerix
BlackJack hat geschrieben:@numerix: `randint()` ist IMHO einfach die verständlichere Alternative um eine Zahl von 1 bis 6 zu würfeln. Das hat nichts mit "Slicing" oder Indexen zu tun.
Meine Logik ist so: range(a,b,c) kennt jeder. randrange(a,b,c) liefert (de facto) einfach aus range(a,b,c) einen zufälligen Wert.
Noch einfacher und schlüssiger geht es m.E. nicht. Bei randint(a,b) hingegen muss ich mir extra merken, dass b mit drin ist.

Verfasst: Dienstag 2. Juni 2009, 15:34
von BlackJack
Das muss man sich nicht "extra" merken. Man muss es sich *nur* merken. Die Annahme, dass die Obergrenze nicht mit enthalten ist, kann man jedenfalls nicht machen, nur weil Indexe und `range()` das so machen, weil das etwas völlig anderes ist.

Verfasst: Dienstag 2. Juni 2009, 16:07
von Clockworx
Wow ich bin echt positiv überrascht von diesem Forum!
dass so viel Hilfe in so kurzer Zeit kommen würde hätte ich echt nicht erwartet.
Vielen Dank an euch, ihr habt mir echt geholfen!
Ich werd mir das Turtorial jetzt mal genauer vornehmen...

Verfasst: Dienstag 2. Juni 2009, 16:08
von lunar
numerix hat geschrieben:Noch einfacher und schlüssiger geht es m.E. nicht.
Wenn du in einer "Mensch ärgere dich nicht"-Runde erzählst, dass du jetzt gleich eine Zahl zwischen 1 und 7 würfeln wirst, wirst du drei verwunderte Blicke ernten ;)

Schlüssig und einfach das Verhalten von "randrange()" nur, wenn man das Verhalten von Slicing und "range()" verallgemeinert. Das ist aber nun mal kein allgemein definiertes Verhalten, sondern betrifft erstmal nur Slicing und "range()". Deine Argumentation ist doch gerade: "Die Funktion ist überflüssig, weil sie sich nicht so verhält wie die Funktion, die ich kenne." Das ist doch irgendwo Unsinn, der Sinn von "randint()" liegt doch gerade darin, dass es sich anders verhält, um der natürlichen Sprache (siehe oben) zu entsprechen.

Der Mensch, insbesondere wenn er kein Programmierer ist, würfelt doch im Allgemeinen eine Zahl zwischen eins und sechs, und nicht zwischen eins und sieben ;)

Verfasst: Dienstag 2. Juni 2009, 18:19
von numerix
Clockworx hat geschrieben:Ich werd mir das Turtorial jetzt mal genauer vornehmen...
Bin mal gespannt, wann der erste von "Torturial" spricht ...

Was randint()/randrange() angeht: Ich verstehe euch (BlackJack, lunar), aber verstehe nicht, dass ihr meiner bestechenden Logik nicht folgen wollt ... :D

Wahrscheinlich war das bei der Entwicklung des random-Moduls genau so: Da gab es die, die sich so an range() und slices gewöhnt hatten, das für sie ein randint() wie es jetzt ist, nicht in Frage kam (auch wenn es mit range/slices nichts zu tun hat); und die nicht-programmierenden Mensch-ärgere-dich-nicht-Spieler, die mit einer 7 beim Würfeln nichts anfangen können. Und am Ende konnte sich keiner durchsetzen ...