lunar hat geschrieben:Ich kenne die Quellen von "randint()", daher habe ich ja auch nachgefragt. "randint()" selbst ist nicht langsam, was Numerix da gemessen hat, sind einzig die Kosten eines Funktionsaufrufs in Python und einer Addition in Python. Mit diesem Argument könnte man gleich auf Funktionen verzichten ...
Diese Argumentation kann ich nicht nachvollziehen.
Fakt ist doch:
- randint() ist langsamer als randrange() - ob nun durch einen Funktionsaufruf und/oder eine Addition, spielt doch keine Rolle
- randrange() ist leistungsfähiger durch die optionale Schrittweite
- randrange() fügt sich durch den ausgeschlossenen Wert für die obere Intervallgrenze besser in das bestehende Konzept von range/slicing
- randrange() ist nicht komplizierter einzusetzen zu verstehen o.ä. als randint()
Was bleibt also als Argument für randint(), außer, dass man sich daran gewöhnt hat und es nach meinem Eindruck häufiger in Quelltexten auftaucht als randrange()?
Vor allem: Wieso wird so ein Wind gegen randrange() gemacht? Was ist denn schlecht an randrange()? Oder liegt es einfach daran, dass es einigen weniger vertraut ist als randint() und darum nicht gut gelitten ist?