Musterlösung
hunde = ["Bruno", "Berta","Helmi"]
katzen = ["Greta", "Xavier", "Zachy"]
for katze in katzen:
for hund in hunde:
print(hund, "beisst", katze+" und "+katze, "kratzt ", hund)Erstelle zwei Listen bestehend aus 3 Hundenamen (hunde) und 3 Katzennamen (katzen). Erstelle einen verschachtelten For Loop, wo jeder Hund jede Katze beisst und jede Katze jeden Hund kratzt.
Bruno beisst Greta und Greta kratzt Bruno
Berta beisst Greta und Greta kratzt Berta
Helmi beisst Greta und Greta kratzt Helmi
....hunde = ["Bruno", "Berta","Helmi"]
katzen = ["Greta", "Xavier", "Zachy"]
for katze in katzen:
for hund in hunde:
print(hund, "beisst", katze+" und "+katze, "kratzt ", hund)Erstelle einen verschachtelten Loop, wo alle Kombinationen von 0 bis 9 miteinander addiert werden.
addition = []
werte = range(10)
for i in werte:
for j in werte:
resultat = i+j
addition.append(resultat)Nutze die Funktion offset_coordinate (Lösung aus Übung 8.5) um einen Punkt in einem Koordinatensystem zu verschieben. Diesmal soll der Punkt aber nicht nur 1x, sondern 100x verschoben werden (100 Simulationen).
import random
def offset_coordinate(old, distance = 100):
new = old + random.normalvariate(0, distance)
return new
x_start = 0
y_start = 0
x_random = []
y_random = []
for i in range(100):
x_new = offset_coordinate(x_start)
y_new = offset_coordinate(y_start)
x_random.append(x_new)
y_random.append(y_new)Versuche die Monte Carlo Simulation für die Annäherung an Pi (aus der ersten Übung “Datenqualität und Unsicherheit) mit einer Funktion und einem For Loop zu lösen.
Zur Erinnerung, die Vorgehensweise für die Annäherung an Pi geht folgendermassen:
x, y) zwischen 0 und 1 erstellenTipps:
random() aus dem modul randomFor loop mit range(100) (für 100 Wiederholungen)import random
# erstelle eine Funktion, die zwei Zufallszahlen zwischen 0 und 1 generiert,
# die Distanz zum Ursprung (0,0) berechnet und True retourniert, wenn der Wert ausserhalb des Kreisviertels liegt
def get_pi():
x = random.random()
y = random.random()
pythagoras = (x**2+y**2)**0.5
ausserhalb = pythagoras > 1
return ausserhalb
get_pi()
# die Funktion 100x wiederholen und die Anzahl Werte > 1 zählen
res = [get_pi() for x in range(100)]
# Anteil der Werte > 1 berechnen und mit 4 multiplizieren
(100-sum(res))/100*4