randrange(start, stop)
accepteert alleen integerargumenten. Dus hoe krijg ik een willekeurig getal tussen twee float-waarden?
Antwoord 1, autoriteit 100%
Gebruik willekeurig.uniform(a, b):
>>> random.uniform(1.5, 1.9)
1.8733202628557872
Antwoord 2, autoriteit 11%
als u een willekeurige float wilt genereren met N cijfers rechts van de punt, kunt u dit doen:
round(random.uniform(1,2), N)
het tweede argument is het aantal decimalen.
Antwoord 3, autoriteit 10%
random.uniform(a, b)
lijkt te zijn wat u zoekt. Uit de documenten:
Retourneer een willekeurig getal met drijvende komma N zodat a <= N <= b voor a <= b en b <= N <= a voor b < a.
Zie hier.
Antwoord 4
Meestal gebruikt u:
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
Python biedt andere distributiesals je dat nodig hebt.
Als je numpy
al hebt geïmporteerd, kun je het equivalent ervan gebruiken:
import numpy as np
np.random.uniform(a, b) # range [a, b)
Nogmaals, als je een andere distributie nodig hebt, biedt numpy
dezelfde distributies als python, evenals veel extra.
Antwoord 5
Vanuit mijn ervaring met python kan ik alleen maar zeggen dat de willekeurige functie kan helpen bij het genereren van willekeurige float-getallen. Neem het onderstaande voorbeeld;
import random
# Random float number between range 15.5 to 80.5
print(random.uniform(15.5, 80.5))
# between 10 and 100
print(random.uniform(10, 100))
The random.uniform() function returns a random floating-point number between a given range in Python
De twee sets code genereren willekeurige float-nummers. Je kunt ermee experimenteren om je te geven wat je wilt.