At My Fingertips

Rapid Playground

Documentation

Zufall nutzen

Bibliothek

Für die Programmiersprache Python wurden sehr viele Bibliotheken erstellt. Eine Bibliothek ist im Programmieren eine Sammlung von Funktionen oder Konstanten. Es gibt öffentliche Bibliotheken wie die PyTamaro-Bibliothek, oder private.

Konstanten (black) und Funktionen (triangle) aus Bibliotheken kann man nutzen, indem man sie zuerst importiert:

from pytamaro import show_graphic, triangle, black
show_graphic(triangle(200, 400, 50, black))

Im folgenden schauen wir uns eine Bibliothek von Python genauer an:

random-Bibliothek

Die Random-Bibliothek von Python generiert pseudo-zufällige Zahlen. Aus dieser Bibliothek lernen Sie hier folgende Funktionen kennen:

Aufgaben I

randint

Führen Sie folgenden Code aus.

Loading...

randint(start, stop) gibt eine irgendeine Ganzzahl (int) z zurück, für die gilt: start <= z <= stop.

random und randrange

Führen Sie folgende zwei Codezellen aus und beantworten sie dazugehörigen Fragen:

Loading...
Loading...

random() gibt eine Gleitkommazahl float z zurück, für die gilt: 0.0 <= z < 1.0.

randrange(start, stop, step) wählt eine Integer von range(start, stop, step) aus und gibt diese zurück.

randint und randrange

randint(a, b) == randrange(a, b+1).

Zusammenfassung

Obwohl sich der Code nicht ändert, werden jedes Mal andere Werte ausgegeben. Dabei ist die Float, die von random() ausgegeben wird, jedesmal eine andere Zahl, da ein Computersehr sehr viele Kommazahlen zwischen 0.0 und 1.0 darstellen kann. randrange(start, stop, step) dagegen wählt nur zwischen start + step * i < stop.

Aufgaben II

floats

  1. Geben Sie 6 Floats zwischen 0 und 1 aus, z. B. 0.03577240139897597, 0.019890852275249005, 0.6593401497301199, 0.10902821036573895, 0.2255892895788344, 0.8879708079967095
  2. Geben Sie 4 Floats zwischen 1 und 2 aus, z. B. 1.265576819795029, 1.7826829178985975, 1.7548781992778282, 1.0792465423170419,
  3. Geben Sie 7 Floats zwischen 0 und 100 aus, z. B. 43.60022228533834, 28.609874606337783, 85.40297838738724, 96.68627346397263, 32.402000969847435, 77.10247641317777, 85.8952407044595,
Loading...

Lösungen

6 Floats zwischen 0 und 1 for s in range(6): print(random(), end = ", ")
4 Floats zwischen 1 und 2 for k in range(4): print(random() + 1, end = ", ")
7 Floats zwischen 0 und 100 for p in range(4): print(random() * 100, end = ", ")

ints

  1. Geben Sie 15 gerade Integers von 0 bis und mit 100 aus, z. B. 4, 86, 36, 64, 88, 30, 94, 20, 92, 90, 48, 100, 42, 32, 18
  2. Geben Sie eine zufällig oft (1 bis 14 Mal) die Zeichenfolge 123_ aus, z. B. 123_123_123_123_123_123_
  3. Geben Sie zufällig oft (0 bis 100 Mal) eine zufällige Zahl von -1000 bis und mit 1000 aus, die durch 7 teilbar ist, z. B. 497, 280, -210, -112, 987, -350, -567, 105, -98, 973, 637, -140, 700, -42, 616, 168, -21, -119, 322, 798, 854, -868, 686, 252, -966, 462, -98
Loading...

Lösungen

15 gerade Integers for m in range(15): print(randrange(0, 101, 2), end = ", ")
123_ zufällig oft print(randrange(1, 14) * "123_", end = "") or for n in range(randrange(1, 14)): print("123", end = ", ")
durch 7 teilbar for y in range(randrange(101)): print(randrange(-994, 1001, 7), end = ", ")

Colors

Um folgende Grafik herzustellen, kann man mit randrange bei jedem Schleifendurchlauf den Rotwert zufällig bestimmen.

bild

rgb_color

Ergänzen Sie folgenden Code, so dass bei jedem Schleifendurchlauf der Rotwert zufällig neu bestimmt wird. Welchen Stopwert wählen Sie?

Loading...
Lösungrotwert = randrange(256)

hsl_color

Ergänzen Sie folgenden Code, so dass bei jedem Schleifendurchlauf die Helligkeit zufällig neu bestimmt wird. Wie gross darf der HSL-Helligkeitswert überhaupt sein?

hsl

Loading...
Lösunghelligkeit = random()

Aufgaben III

rotate

Ergänzen Sie obigen Code so, dass ungefähr die Titelgrafik mit den verschiedenfarbigen und verschieden rotierten Sternen dargestellt wird.

rotation

Lösung

Ersetzen Sie den letzten Befehl im Schleifenkörper mit folgendem Zweizeiler:

  • rotation = randrange(60)
  • reihe = beside(reihe, rotate(rotation, stern))

Ersetzen Sie den Aufruf zudem mit folgendem Dreizeiler:

  • zfr = zufaellige_sterne(500, 4)
  • zfr_1 = zufaellige_sterne(500, 4)
  • show_graphic(above(zfr, zfr_1))

compose

Sie können auch kleinere Grafiken (z. B. Sterne oder Blumen) zufällig auf einer grösseren Grafik (z. B. ein Himmel oder eine Wiese) positionieren:

image.png

Gehen Sie zur Aktivität Sternenhimmel um zu sehen, wie das geht.

Weitere PyTamaro Anwendungsbereiche

Mit Zufallszahlen kann man jeden Funktionsparameter aufpimpen. So können Sie z. B.

  • eine Wiese mit verschieden grossen Grashalmen erstellen, ohne dass es zu regelmässig aussieht oder zu stark variiert.
  • Blumen in verschiedenen Farben und Schattierungen verwenden.
  • einen Himmel mit zufällig vielen und zufällig platzierten Sternen bedecken.
  • Sie können eine Figur zufällig schnell bewegen/ animieren.
  • Sie können zufällig auswählen, ob ein Kreis, Quadrat, Dreieck, ... gezeichnet wird.
  • ...

Toolbox

Fügen Sie ausgewählte Funktionen der Toolbox hinzu.

Was Sie gelernt und geübt haben

Python

  • Sie können die Funktionen random(), randint(start, stop) und randrange(start, stop, step) aus der Python-Bibliothek Random verwenden, um Zahlen und Grafiken mit Zufallselementen auszugeben.

PyTamaro

  • Sie können Funktionen mit zufällig gewählten Parametern erstellen. Sie verstehen, dass so (fast) nie dieselbe Grafik entsteht.

This activity has been created by Gall and is licensed under CC BY-SA 4.0.

Zufall nutzen

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version 320e1c5 (Thu, 16 May 2024 14:11:39 GMT)