# Python-random-Modul: Überblick über die Funktionen

Das Python-random-Modul bietet Ihnen eine Vielzahl von Funktionen zur **Erzeugung von Zufallszahlen** in verschiedenen Formaten – von Ganzzahlen über Gleitkommazahlen bis hin zur Auswahl von Elementen aus Listen.

## Was ist das Python-random-Modul?

Das Python-Modul random ist eine eingebaute Bibliothek, mit der Sie Zufallszahlen generieren und zufallsbasierte Operationen in Ihren Programmen ausführen können. Es umfasst verschiedene Funktionen zur **Erzeugung von Pseudozufallszahlen**, die in vielen Anwendungsfällen verwendet werden können, von der Simulation bis hin zur Spieleentwicklung und kryptografischen Aufgaben.

Eine wichtige Eigenschaft des random-Moduls ist seine Wiederholbarkeit. Durch Festlegung eines Anfangswerts oder **Seeds** kann die Zufallsgenerierung reproduzierbar werden. Dies ist praktisch für Tests, Experimente und Simulationen, bei denen konsistente Zufallsdaten benötigt werden.

## Liste der Funktionen des random-Moduls

Das Python-random-Modul beinhaltet verschiedene Methoden für die **Generierung und Bearbeitung von Zufallszahlen**. Die folgende Tabelle gibt einen Überblick über die Funktionen und ihre Eigenschaften:

<table>
  <thead>
    <tr>
      <th>Funktionsname</th>
      <th>Erklärung</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`seed(a=None, version=2)`</td>
      <td>Legt den Anfangswert (Seed) für den Zufallszahlengenerator fest.</td>
    </tr>
    <tr>
      <td>`getstate()`</td>
      <td>Gibt den aktuellen Zustand des Zufallszahlengenerators als Objekt zurück.</td>
    </tr>
    <tr>
      <td>`setstate(state)`</td>
      <td>Setzt den Zustand des Zufallszahlengenerators mithilfe eines Zustandsobjekts zurück.</td>
    </tr>
    <tr>
      <td>`getrandbits(k)`</td>
      <td>Gibt eine Ganzzahl mit k Bits zurück.</td>
    </tr>
    <tr>
      <td>`randrange(start, stop, step)`</td>
      <td>Erstellt eine zufällige Ganzzahl aus dem angegebenen Bereich.</td>
    </tr>
    <tr>
      <td>`randint(a, b)`</td>
      <td>Gibt eine zufällige Ganzzahl im angegebenen Bereich zurück.</td>
    </tr>
    <tr>
      <td>`choice(seq)`</td>
      <td>Gibt ein zufälliges Element aus der gegebenen Sequenz zurück.</td>
    </tr>
    <tr>
      <td>`choices(population, weights=None, *, cum_weights=None, k=1)`</td>
      <td>Erstellt eine Liste mit k zufällig ausgewählten Elementen aus der Bevölkerung; die Wahrscheinlichkeiten können optional angegeben werden.</td>
    </tr>
    <tr>
      <td>`sample(k, population)`</td>
      <td>Kreiert eine Liste mit k zufällig ausgewählten Elementen aus der Bevölkerung, ohne Duplikate.</td>
    </tr>
    <tr>
      <td>`shuffle(x)`</td>
      <td>Mischt die Elemente in einer Liste in zufälliger Reihenfolge.</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Gibt eine zufällige Gleitkommazahl im Bereich von 0 bis 1 zurück.</td>
    </tr>
    <tr>
      <td>`uniform(a, b)`</td>
      <td>Gibt eine zufällige Gleitkommazahl im angegebenen Bereich zurück, inklusive der Grenzwerte.</td>
    </tr>
    <tr>
      <td>`triangular(low, high, mode)`</td>
      <td>Erstellt eine zufällige Gleitkommazahl im Dreiecksverteilungsbereich.</td>
    </tr>
    <tr>
      <td>`betavariate(alpha, beta)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer Beta-Verteilung zurück.</td>
    </tr>
    <tr>
      <td>`expovariate(lambd)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer Exponentialverteilung zurück.</td>
    </tr>
    <tr>
      <td>`gammavariate(alpha, beta)`</td>
      <td>Erstellt eine zufällige Gleitkommazahl aus einer Gamma-Verteilung.</td>
    </tr>
    <tr>
      <td>`gauss(mu, sigma)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer Gauß-Verteilung zurück.</td>
    </tr>
    <tr>
      <td>`lognormvariate(mu, sigma)`</td>
      <td>Schafft eine zufällige Gleitkommazahl aus einer logarithmischen Normalverteilung.</td>
    </tr>
    <tr>
      <td>`normalvariate(mu, sigma)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer Normalverteilung zurück.</td>
    </tr>
    <tr>
      <td>`vonmisesvariate(mu, kappa)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer von Mises-Verteilung zurück.</td>
    </tr>
    <tr>
      <td>`paretovariate(alpha)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer Pareto-Verteilung zurück.</td>
    </tr>
    <tr>
      <td>`weibullvariate(alpha, beta)`</td>
      <td>Gibt eine zufällige Gleitkommazahl aus einer Weibullverteilung zurück.</td>
    </tr>
  </tbody>
</table>

## Elemente zufällig aus einer Liste auswählen

Falls Sie mehrere zufällige Elemente aus einer Liste auswählen möchten, können Sie die Funktion `choices(seq, k=n)` aus dem Python-random-Modul nutzen, wobei `n` die Anzahl der gewünschten zufälligen Elemente ist.

```python
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_element)
```

In diesem Fall verwenden wir die `choices()`-Funktion, um drei zufällige Elemente aus der Liste `my_list` auszuwählen. Die Ergebnisse werden als Liste von drei zufälligen Elementen zurückgegeben.

## Eine Liste mischen

Die `shuffle()`-Funktion ordnet die Elemente von Python Lists in einer zufälligen Reihenfolge.

```python
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
```

Sie sollten bedenken, dass `shuffle()` die Liste selbst ändert und keine neue zurückgibt. Nach der Anwendung von `shuffle()` wird die ursprüngliche Liste in einer zufälligen Reihenfolge vorliegen.

## Einen Seed festlegen

Wenn Sie `random.seed()` aus dem Python-Random-Modul einsetzen, um einen **spezifischen Seed-Wert festzulegen**, wird der Zufallszahlengenerator bei der Erzeugung von Zufallszahlen auf Basis dieses Seeds gestartet. Dies bedeutet, dass das Setzen desselben Seed-Werts zu einem späteren Zeitpunkt denselben Satz von Zufallszahlen in Ihrer Anwendung generieren wird.

```python
import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random())  # Example output: 0.6394267984578837
print(random.random())  # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random())  # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random())  # Example output: 0.025010755222666936 (identical to the previous value)
```

Nach dem Setzen des Seed-Werts werden Zufallszahlen generiert und ausgegeben. Wenn der Seed-Wert erneut auf **denselben Wert** gesetzt wird, werden dieselben Zufallszahlen erneut generiert. In unserem Beispiel hat der Seed den Wert 42. Damit sind die Zufallszahlen reproduzierbar, solange der Seed-Wert gleichbleibt.


This is a markdown version of: [https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-random/](https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-random/) for AI/LLM consumption.