Wie man Zufallszahlen in Python generiert
Grace Collins
Solutions Engineer · Leapcell

Key Takeaways
- Verwenden Sie
random.randint()
für die allgemeine Erzeugung von Ganzzahlen. - Verwenden Sie
secrets.randbelow()
für kryptografisch sichere Zufallszahlen. - Verwenden Sie
numpy.random.randint()
für schnelle, umfangreiche Zufallszahlen-Arrays.
Das Generieren von Zufallszahlen ist eine häufige Aufgabe in der Programmierung, die in einer Vielzahl von Anwendungen nützlich ist, wie z. B. Simulationen, Spiele, Kryptographie und Tests. Python bietet verschiedene integrierte Methoden, um Zufallszahlen effizient und sicher zu generieren. In diesem Artikel werden wir die am häufigsten verwendeten Ansätze untersuchen.
Verwenden des random
-Moduls
Die Python-Standardbibliothek enthält das random
-Modul, das eine Reihe von Funktionen zum Generieren von Pseudo-Zufallszahlen bietet.
1. random.randint(a, b)
Diese Funktion gibt eine zufällige ganze Zahl N zurück, sodass a <= N <= b
gilt.
import random num = random.randint(1, 10) print(num) # Die Ausgabe könnte eine beliebige ganze Zahl von 1 bis 10 (einschließlich) sein
Hinweis: Beide Endpunkte sind inklusive.
2. random.randrange(start, stop[, step])
randrange()
ist ähnlich wie range()
, aber es gibt ein zufällig ausgewähltes Element aus dem Bereich zurück.
num = random.randrange(0, 100, 5) print(num) # Die Ausgabe könnte 0, 5, 10, ..., bis weniger als 100 sein
Verwenden des secrets
-Moduls (für Sicherheit)
Wenn Sie kryptografisch sichere Zufallszahlen benötigen (z. B. für Passwörter, Token oder Authentifizierung), verwenden Sie das secrets
-Modul, das sich ebenfalls in der Python-Standardbibliothek befindet (seit Python 3.6).
import secrets num = secrets.randbelow(10) # Gibt eine ganze Zahl im Bereich [0, 10) zurück print(num)
Dies ist sicherer als random.randint()
, aber etwas langsamer.
Verwenden von numpy
für die großtechnische Generierung
Wenn Sie mit Data Science oder Simulationen arbeiten und viele Zufallszahlen effizient generieren müssen, bietet numpy
schnelle, vektorisierte Werkzeuge:
import numpy as np arr = np.random.randint(0, 100, size=10) print(arr) # Gibt ein NumPy-Array mit 10 zufälligen ganzen Zahlen zwischen 0 und 99 aus
numpy
ist nicht Teil der Standardbibliothek und muss separat installiert werden (pip install numpy
).
Fazit
Zusammenfassend:
Methode | Anwendungsfall | Inklusiver Bereich | Sicher? |
---|---|---|---|
random.randint(a, b) | Allgemeine Verwendung | Ja | Nein |
random.randrange(a, b) | Zufälliges Element aus Bereich | Nein (schließt b aus) | Nein |
secrets.randbelow(n) | Sichere Zufallszahlen | Nein (schließt n aus) | Ja |
numpy.random.randint() | Effiziente Array-Generierung | Ja | Nein |
Wählen Sie die Methode, die Ihren Anforderungen am besten entspricht, sei es für alltägliche Skripte, sichere Anwendungen oder umfangreiche numerische Arbeiten.
FAQs
randint(a, b)
umfasst sowohl a
als auch b
, während randrange(a, b)
b
ausschließt.
Verwenden Sie es, wenn Sicherheit ein Problem ist, z. B. zum Generieren von Passwörtern oder Token.
Ja, NumPy muss separat mit pip install numpy
installiert werden.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Python-Projekten.
Leapcell ist die Next-Gen Serverless Plattform für Webhosting, asynchrone Aufgaben und Redis:
Multi-Language Support
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung - keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Aufwand - konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ