Python in 21 Minuten Vorwort

Werbung
Python in 21 Minuten
Vorwort
Python kann einfach nützlich sein, zum Beispiel zur einfachen Kalkulation von Preisen, wo eine Tabellenkalkulation und Office mit Kanonen auf Spatzen zu schießen bedeuten würde. Dieses kleine Büchlein erlaubt es Python in wenigen Minuten bereits nutzbringend einsetzen zu können.
Python ist auf jedem System Linux, Windows und Mac verfügbar und unter Ubuntu meist vorinstalliert. Auf der Konsole (Konsole Terminalprogramm) kann das interaktive Programm python ­i gestartet werden. Die interaktive Eingabe kann als einfacher Taschenrechner benutzt werden. Weite Teile des Buchs beruhen auf dem Tutorial (englisch). Dabei sind allerdings nur die aus meiner Sicht wirklich praktisch leicht einsetzbaren Aspekte behandelt. Beispiel Berechnung des Preises inklusive Mehrwertsteuer aus dem Nettowert Die interaktive Eingabe erfolgt hinter dem Prompt „>>>“.
Python 2.4.3 (#2, Apr 27 2006, 14:43:58)
[GCC 4.0.3 (Ubuntu 4.0.3­1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 7.17 * 1.19
8.5322999999999993
Es können auch Variablen verwendet werden
>>> brutto=8.5323
>>> mwst=19.0
>>> netto=brutto/(1+mwst/100)
Es sind dabei Dezimalpunkte zu verwenden, damit die Werte nicht als ganze Zahlen interpretiert werden, also 19.0 statt 19. Für praktische Berechnung, etwa Kalkulation oder naturwissenschaftlich technische Berechnung ist es meist sinnvoll mit dezimalen Zahlen zu arbeiten. Python arbeitet jedoch mit ganzen Zahlen, wenn kein Punkt angegeben ist. Bei der Division „/“wird dann auf ganze Zahlen abgerundet, was meist nicht gewünscht ist. Es genügt aber Zähler oder Nenner mit Punkt anzugeben. Es kann auch eine Funktion definiert werden, um den Nettowert aus dem Brutto zu berechnen:
>>> def netto(x):
return x/(1.0+mwst/100.0);
>>> netto(brutto)
7.1699999999999999
Dabei ist zu beachten, dass die zweite Zeile bei der Definition der Funktion mit Tabulator oder Leerzeichen eingerückt wird. Die Definition der Variablen und der Funktion kann auch in eine Datei geschrieben werden. Dies kann beim Aufruf des interaktiven Programms mit der Option „­i“ für interaktiv angegeben werden.
Mit der Funktion round kann der Wert etwa auf zwei Nachkommastellen gerundet werden
>>> round(mwst, 2)
Mehrere Objekte, zum Beispiel Zahlen, können in einer Liste gespeichert werden.
>>> p = [1.3, 2.4, 3.8]
>>> sum = 0
>>> for x in p: sum = sum + x
Beispielanwendung
Als ein komplexeres Rechenbeispiel soll hier die Ertragsrechnung für ein Photovoltaik­Anlage unter Berücksichtigung des Sonnenstands und der Luftmasse, die ein Teil der Strahlung nicht durchdringen kann. Nicht berücksichtig wird die Bewölkung. Die Berechnung gilt daher für 365 Sonnentage im Jahr. Für die täglich auf die Erde treffende Strahlung ist der mittlere Sonnenstand, der sich aus der Deklination, dem Breitengrad gegenüber dem die Sonne senkrecht steht ergibt. Die Berechnung erfolgt nach einer Formeln die in http://de.wikipedia.org/wiki/sonnenstand genannt sind.
Benötig werden einige Trigonometrische Funktionen und andere mathematische Funktionen. Daher ist ein Import­Statement erforderlich.
import math
Zur Umrechnung von Grad in Bogenmaß: def rad(x):
return x * math.pi / 180.0
def cos_g(grad):
return math.cos(rad(grad))
def sin_g(grad):
return math.sin(rad(grad))
def exp(x):
return math.exp(x)
def ln(x):
return math.log(x)
Zur Berechung der Größen L und g nach der Beschreibung in Wikipedia.
def L(n):
return 280.46 + 0.9856474 * n def g(n):
return 357.528 + 0.9856474 * n
def Lambda(n):
return L (n) + 1.915 * sin_g(g(n)) + 0.02 * sin_g(2*g(n)) def decl(n):
return (180.0/math.pi) * math.asin (sin_g(23.439 – 0.0000004*n) * sin_g(Lambda(n)) def sunX(n, br, tau, hkm):
solar_constant = 1367.0
dec = decl(n)
sh = cos_g(tau) * cos_g(br) * cos_g(dec) + sin_g(br) * sin_g(dec)
if xx <= 0.0:
return 0.0
axx = ­ (2.0/3.0) * ln( solar_constant/1000.0 )
xxmass = exp(hkm/8.4) * sh
return solar_constant * sh * exp(axx / xxmass) def sunXday(n, br, hkm):
dec = decl(n)
sumx = 0.0
for i in range(1000):
tau = (i/1000.0) * 360.0
sumx = sumx + sunX(n, br, tau, hkm)
return sumx/1000.0
def sunXyear(br,hkm):
sumx = 0
for n in range (365):
sumx = sumx + sunXday(n,br,hkm)
return sumx/365.0
Herunterladen