Errata – Python für Ingenieure

Auflage 1 bis 4, Seite 91:

Ein Leser wies freundlicherweise darauf hin, dass der folgende Satz nicht ganz korrekt ist:

list.index(element) : Gibt den Index des Elements element innerhalb der Liste list zurück.

Richtig wäre:

list.index(element) : Gibt den Index des Elements element innerhalb der Liste list zurück, sofern die Listenelemente nur einmal in dieser Liste vorkommen. Kommt dagegen das Element element mehrfach in der Liste list vor, so liefert diese Funktion den Index des ersten Vorkommens dieses Listenelementes.

Beispiel:

>>> Liste = [ 65, 77, 92, 118]
>>> Liste.index(92)
2
>>> Liste = [ 65, 77, 92, 92, 118, 92 ]
>>> Liste.index(92)
2

Auflage 4, Seite 119, Hinweis (Merke)

Dieser Hinweis ist für neuere Python-Versionen nicht mehr gültig. Die pyc-Datei wurde dort durch ein pycache-Verzeichnis ersetzt, welches nicht mehr von Hand gelöscht werden muss.

Alle Auflagen, Lösung 3.10

Der Operator <> war in älteren Python-Versionen zulässig. In neueren Python-Versionen gibt es nur den äquivalenten Operator != zum Test auf Ungleichheit.

Auflage 1 bis 3, Aufgabenstellung 5.5

Die Formel für die Standardabweichung ist falsch geschrieben. In der vierten Auflage ist sie jedoch korrekt dargestellt. In der Lösung (Python-Programm) wurde aber die korrekte Formel umgesetzt.

Alle Auflagen, Lösung 5.4

Der doppelte Import ist sinnlos. Es genügt eine Zeile: from numpy import *

Auflage 4, Seite 51, Lösung 2.2.2

Der Operator / steht für die Division von Gleitpunktzahlen. Im Gegensatz dazu führt der Operator // eine Ganzzahl-Division durch. Im Programmcode ist der Operator richtig verwendet.

Auflage 4, Seite 63, Lösung 2.4.2

Der Funktionsname im Programmcode ist falsch. Er lautet Dreieckeck(). Richtig muss es heißen: Dreieck()

Auflage 4, Seite 64, Lösung 2.4.3

Im Text heißt es fälschlicherweise: ein Rechteck wird vom Punkt (xe,ye) ausgehend gezeichnet. Richtig ist: ein Rechteck wird vom Punkt (xa,ya) ausgehend gezeichnet.

Auflage 4, Seite 77, Kapitel 2.8.1

In den neueren Python-Versionen ist range() ein Objekt und erzeugt NICHT direkt eine Liste. Wenn ein solches range-Objekt als Liste ausgegeben werden soll, muss dies folgendermaßen geschehen:

>>>list(range(1,4))
[1, 2, 3]
>>>list(range(1,5))
[1, 2, 3, 4]
>>>list(range(1,11,2))
[1, 3, 5, 7, 9]
>>>list(range(3,11,3))
[3, 6, 9]

Auflage 4, Seite 105, Kapitel 3.4

In Zeile #1 fehlen die Klammern beim Aufruf der print()-Funktion. Also statt print kfz muss print(kfz) stehen.

Auflage 4, Seite 106, Kapitel 3.4

In der ersten Anweisung fehlen die Klammern beim Aufruf der print()-Funktion. Statt print i,kfz(i) muss stehen: print(i,kfz(i))

Auflage 4, Seite 175, Lösung 4.4

In der vierten Anweisung fehlen die Klammern beim Aufruf der print()-Funktion. Statt print id(NeuerPunkt) muss stehen: print(id(NeuerPunkt))

Auflage 4, Seite 193, Lösung 5.4

Die erste Zeile kann gelöscht werden. Numpy wird zweimal importiert. Dies führt zwar zu keinem Fehler, ist aber überflüssig.

Auflage 4, Seite 196, Abschnitt 6.2

Im Abschnitt „Diskussion“ wird fäschlicherweise eine Schrittweite von 0.01 genannt. Richtig ist die im Programmcode verwendete Schrittweite von 0.1.

Auflage 4, Seite 226, Aufgabe 7.2

Die Funktion f(x)=arctan(x) muss ersetzt werden durch f(x) = artanh(x). Dies ist die Funktion „Areatangens hyperbolicus“. Die Lösung 7.2 ist korrekt und bezieht sich auf diese Funktion.

Auflage 4, Seite 245, Abschnitt 8.4.2

Der Code

c = vertex( pos=vector(x4,y4,z4) )

Viereck = quad( vs = [a,b,c] )

ist nicht korrekt. Er muss ersetzt werden durch

d = vertex( pos=vector(x4,y4,z4) )

Viereck = quad( vs = [a,b,c,d] )

Auflage 4, Seite 245 und 246, Abschnitt 8.4.3

Im Programmcode wird die Datei Kurbelwelle.stl eingelesen und dargestellt. Im Text steht fälschlicherweise, dass die Datei Pleuelstange.stl eingelesen wird.

Auflage 4, Seite 266, Lösung 8.5

In der ersten Zeile des Textes auf Seite 266 steht falsch:

Die Variable g bedeutet die Erdbeschleunigung in m/s**2 (#5)

Richtig ist folgendes:

Die Variable g bedeutet die Erdbeschleunigung in m/s**2 (#2)

Auflage 4, Seite 280, Lösung 9.4

Der Programmcode muss modifiziert werden, damit er auch unter VPython 7 läuft:

Die Übergabeparameter axis und pos müssen in VPython7 dreidimensionale Vektoren sein, die mit dem Konstruktor vector() erzeugt werden. Außerdem muss die Import-Anweisung geändert werden: from vpython import *

Auflage 4, Seite 287, Kapitel 10.4

In Zeile #10 fehlen die Klammern beim Aufruf der print()-Funktion.

Auflage 4, Seite 300, Kapitel 10.7

Bei der zweiten Formel (von oben) in der sechsten Zeile fehlt ein Minuszeichen vor dem ersten Term auf der rechten Seite.

Ein herzliches Dankeschön an alle Leser für Hinweise zu Fehlern und Unklarheiten!