Sie können linspace
aus der Bibliothek numpy
verwenden. Hier ein Beispiel:
>>> import numpy
>>> numpy.linspace(0.5, 10, 20)
array([ 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5,
5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. ,
9.5, 10. ])
>>> range_of_numbers = numpy.linspace(0.5, 10, 20)
>>> random_number = numpy.random.choice(range_of_numbers, size=1)
>>> print random_number
[ 9.5]
Die Ergebnismenge linspace
ist in einem Array, aber Sie können mit dieser weiter leicht arbeiten, wenn nötig. Hier finden Sie weitere Informationen zur Verwendung von linspace
.
EDIT
Eine weitere Option ist Pylab der frange
Bibliothek zu verwenden. Es ist ein Wrapper um matplotlib
, aber es lohnt sich, nach der Lösung zu suchen, die Sie erreichen wollen. Hier ist ein Beispiel von frange
mit:
>>> import pylab
>>> pylab.frange(0.5,10,0.5)
array([ 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5,
5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. ,
9.5, 10. ])
Hier einige weitere Dokumentation um frange
.
Zusätzliche Hinweise
Während Sie arange
verwenden könnte, bedenken Sie, dass es zu Fließkommafehler führt. Die NumPy-Dokumentation empfiehlt, linspace
zu verwenden, um die Gleitkommafehler zu vermeiden. Außerdem haben arange
und linspace
unterschiedliche APIs.
Wie klein ist Ihr Schritt (z. B. 0,5 in Ihrer Frage) wahrscheinlich und wie groß ist das Intervall (z. B. 1-10 in Ihrer Frage) in einer realen Situation? Wahrscheinlich müssen Sie selbst etwas schreiben, um eine Reihe reeller Zahlen zu erhalten, die selbst bei kleinen Intervallen mit einem kleinen Inkrement sehr groß werden können (z. B. 1-5 mit Schritt 0.0001). –
Warum nicht einfach 'random.randint (2, 20)/2.0' –