Ich fange an, Python zu lernen, versuchte ich, Zufallswerte zu generieren, indem Sie eine negative und positive Zahl. Sagen wir -1
, 1
.Wie generiert man negative zufällige Wert in Python
Wie soll ich das in Python machen?
Ich fange an, Python zu lernen, versuchte ich, Zufallswerte zu generieren, indem Sie eine negative und positive Zahl. Sagen wir -1
, 1
.Wie generiert man negative zufällige Wert in Python
Wie soll ich das in Python machen?
import random
def r(minimum, maximum):
return minimum + (maximum - minimum) * random.random()
print r(-1, 1)
EDIT: @ San4ez die random.uniform(-1, 1)
der richtige Weg ist. Keine Notwendigkeit, das Rad neu zu erfinden ...
Wie auch immer, ist random.uniform()
codiert als:
def uniform(self, a, b):
"Get a random number in the range [a, b) or [a, b] depending on rounding."
return a + (b-a) * self.random()
Verwenden random.uniform(a, b)
>>> import random
>>> random.uniform(-1, 1)
0.4779007751444888
>>> random.uniform(-1, 1)
-0.10028581710574902
Die meisten Sprachen haben eine Funktion, die eine Zufallszahl im Bereich zurück [0 , 1], die Sie dann bearbeiten können, um die von Ihnen benötigte Reichweite zu erreichen. In Python ist die Funktion random.random
. Also für Ihren Bereich von [-1, 1], können Sie dies tun:
import random
random_number = random.random() * 2 - 1
Durch die Zahl verdoppeln wir eine Reihe von [0, 2] erhalten, und durch eine von ihr subtrahiert, wir [get - 1, 1].
wenn Sie integer in a specified range wollen:
print random.randrange(-1, 2)
es verwendet die gleiche Konvention wie range
, so ist die Obergrenze nicht eingeschlossen.
random.uniform
macht etwas Ähnliches, wenn Sie Werte müssen schwimmen, aber es ist not always clear wenn die obere Grenze enthalten ist oder nicht
Sie auch so etwas wie dieses
tun könnenimport random
random.choice([-1, 1])
'def rand(): return 4 # Generiert durch faire Würfelrolle. Garantiert zufällig zu sein. –
Vielen Dank. Aber kann ich nicht auf diese Weise tun. Wo ich den Wert als Argument übergeben möchte, während das Skript ausgeführt wird. . #!/Usr/bin/env python import sys, Random r = sys.argv [1] y = sys.argv [2] Druck random.range (y, r) – user1393251
@ user1393251 - Sie tun können, es auf diese Weise (meine 'r' Methode wird so genannt, wie die richtige' random.uniform' ist), nur ich erfinde das Rad hier neu ... Nehmen Sie San4ez's Antwort. – eumiro