Der Einstieg in Python

Die Freunde der Würgeschlange treffen sich hier. Übrigens kommt dieses Python von Monty Python, einem englischen Komiker

Vorwort

Beitragvon Hans » Mo 8. Nov 2010, 08:06

Vorwort


Es wird sich so mancher fragen, warum denn nun schon wieder eine Einführung in Python? Die gibt es doch schon wie Sand am Meer. Ich habe mich dazu entschlossen diese kurze Abhandlung zu schreiben, um Anwendern ohne jegliche Erfahrung einen Einstieg in die Pythonprogrammierung für GIMP zu ermöglichen. Ich werde mich deshalb auf die dafür benötigten Befehle beschränken. Für einen vollständigen Einstieg kannst du eine der unten stehenden Quellen benutzen.

Literaturverzeichnis




Bild
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH

Aufbau eines Python Programms

Beitragvon Hans » Mo 8. Nov 2010, 08:23

Aufbau eines Python Programms


Die Programmiersprache Python wurde u. a. dazu entwickelt, Programmierern in der Ausbildung einen sauberen Programmierstil beizubringen. Viele, die sich seinerzeit dem Thema Programmierung beschäftigten, hatten bereits Erfahrungen mit BASIC. Einer der wichtigsten und auch gefürchtetsten Befehle in BASIC war der GOTO Befehl, war er doch mit die Ursache dafür, dass schwer verständlicher Spaghetti - Code entstand. Darunter versteht man Programmcode, indem man ganze Zeilen überspringt, dann plötzlich wieder um etliche Zeilen Zurück und von da .... Na du weißt schon. Gut strukturierte Programme werden von oben nach unten abgearbeitet.

Wesentlich für Python ist, dass ein Programm überwiegen aus Prozeduren und Funktionen besteht. Jede Prozedur und Funktion enthält Instruktionen, was zu tun ist. Diese Instruktionen nennt man auch den Rumpf. Anders als Pascal, C oder BASIC wird der Rumpf nicht über Klammern oder Schlagworte gebildet. In Python muss dies über eine Einrückung des Codes erfolgen, d. h. definiere ich eine Funktion, so wird alles das was diese Funktion ausführen soll um mindestens ein Zeichen nach rechts versetzt. Üblich sind zwei, drei oder fünf Leerzeichen.

Für die Programmierung von Python kann man Idle verwenden. Dieses wird unter Windows über Programmsymbol in der Programmgruppe Python gestartet. Unter Linux gibt man idle im Schnellstarter oder auf der Shell ein. Es öffnet sich ein Fenster (Pythonshell). In diesem öffnest du über <strg>+<n> oder über File/new Windows ein Editorfenster. Es kann bei Bedarf auch mehr als ein Editorfenster geöffnet werden. Im Editorfenster kann man vorhandene Dateien öffnen oder auch neue erstellen und abspeichern. Löst man mit der rechten Maustaste auf einer Zeile aus, kann man Haltepunkte löschen oder setzen. Diese können dann beim Debuggen dazu verwendet, den Ablauf des Programms zu stoppen. Für weitere Informationen verweise ich auf die unten stehende Literatur.

Unter Debuggen versteht man die Fehlerbeseitigung aus Programmen. Es gibt dazu Tools, welche den Code Schritt für Schritt abarbeiten und das jeweilige Zwischenergebnis anzeigen. Bei einigen Programmen kann man das Zwischenergebnis sogar manipulieren oder eine Überwachung einer Variablen einschalten. Dann hältder Debugger sofort an, wenn das Ereignis eintritt. Nur so kann man oft herausbekommen, wo ein Fehler entsteht.

Bild


Zu beachten ist auch, dass Python immer case sensitive arbeitet, d. h. es unterscheidet zwischen Groß- und Kleinschreibung. Alle einem Doppelkreuz (#) nachfolgenden Zeichen sind Kommentar und werden nicht ausgeführt.

Das sieht dann so aus
Code: Alles auswählen
def MeineFunktion():
  a = 5
  b = 2.0
  c = a/b
  return c 

### Hauptprogramm ############
print MeineFunktion()

der Funktionsrumpf geht hier von a=5 bis return c. Rücken wir die Zeile c = a/b auch nur ein Zeichen nach links, so kann der Python Interpreter dieses nicht mehr umsetzen und bringt die Fehlermeldung Unindent does not match any outer indentation level. Bevor die Funktion erstmalig benutzt wird, muss sie bereits definiert sein. Das führt dazu, dass im Beispiel oben, das eigentliche Hauptprogramm am Ende des Programmes ist.

Jede Funktion und Prozedur beginnt mit der Anweisung def. Dieses ist die Anweisung für den Interpreter, dass es sich um eine wiederverwendbare Anweisung handelt, welche also den vorgegebenen Funktionsumfang von Python erweitert. Es kann sein, dass die Definition über mehr als eine Zeile geht. Die def Anweisung ist auf jeden Fall mit einem Doppelpunkt abzuschließen. Alle mit der def Anweisung beginnenden Instruktionen werden auch als Prozedur- oder Funktionsdeklaration bezeichnet.

Man unterscheidet zwischen Prozeduren und Funktionen. Prozeduren führen etwas aus und geben keinen Wert zurück, wohingegen Funktionen einen Wert zurückgeben. Man erkennt dieses, dass Funktionen immer mit return ... enden. Dieser zurückgegebene Wert kann weiterverarbeitet werden. Ich versuche es einmal an einem allgemeinverständlichen Beispiel zu erklären. Aus Sicht des Programmierers ist einen Brief zuzustellen eine Prozedur. Die Post befördert ihn und gibt ihn beim Empfänger ab. Hingegen ist das Versenden eines Einschreibens mit Rückantwort eine Funktion. Du versendest dieses, die Post liefert es gegen Bestätigung ab und stellt dir die Empfängerquittung wieder zu. Die Quittung kannst du nun weiterverarbeiten indem du sie archivierst oder zum Anwalt schickst.



Beispiel
Code: Alles auswählen
def meineProcedure():
  print 'Hallo GIMP-Atelier'
  print MeineFunktion()

def MeineFunktion():
  a = 5
  b = 2.0
  c = a/b
  return c 

### Hauptprogramm ############
meineProcedure()
erzeugt folgende Ausgabe
Code: Alles auswählen
Hallo GIMP-Atelier
2.5


Funktionen und Prozeduren kann man auch mitgeben, womit sie arbeiten sollen. Es können dieses z. B. Daten sein. Nehmen wir an, wir wollen den Prozentsatz errechnen, wieviel Kühe der Bauer im Stall hat. Dazu übergeben wir die Anzahl der Kühe auf der Weide (nWeide) und der im Stall (nStall). Wir übergeben diese beiden Parameter der Funktion. Das sieht dann so aus:
Code: Alles auswählen
def meineProcedure(nWeide, nStall):
  print 'Hallo GIMP-Atelier'
  print MeineFunktion(nWeide, nStall), '% stehen im Stall'

def MeineFunktion(nWeide, nStall):
  c = 100 / (nWeide + nStall + 0.0) * nStall
  return c 

### Hauptprogramm ############
### 20 Kuehe auf der Weide
###  5 Kuehe im Stall
meineProcedure(20,5)
print "\n\n"
meineProcedure(35,16)
Als Ausgabe bekommen wir dann
Code: Alles auswählen
Hallo GIMP-Atelier
20.0 % stehen im Stall



Hallo GIMP-Atelier
31.3725490196 % stehen im Stall
Bitte nicht wundern über die Zeile c = 100 / (nWeide + nStall + 0.0) * nStall. Mathematisch gesehen ist das Addieren von 0.0 überflüssig, aber wenn wir in Python eine Ganzzahl übergeben, dann rechnet Python auch mit Ganzzahlen (Integer). Und jede Formel welche nur Integer Werte enthält, hat als Ergebnis wieder einen Integer, d. h. wenn du 5/2 in die Pythonshell eingibst, dann wird 2 und nicht 2.5 als Ergebnis ausgeworfen!

Die auf die Definitionszeile folgende Zeile wird üblicherweise als Hilfe benutzt. Dazu einfach einen String hineinschreiben. Beispiel:
Code: Alles auswählen
>>> def hans_test():
   """Dieses ist ein Test von Hans
fuer das GIMP-Atelier.
Sie soll die Hilfefunktion zeigen"""
   print "hallo GIMP-Atelier"

   
>>> hans_test()
hallo GIMP-Atelier
>>> help(hans_test)
Help on function hans_test in module __main__:

hans_test()
    Dieses ist ein Test von Hans
    fuer das GIMP-Atelier.
    Sie soll die Hilfefunktion zeigen

>>>
Man beachte, dass die zweite und dritte Zeile des Strings nicht eingerückt sind. Hier würden die Einrückungen auch angezeigt.



Bild
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH

Datentypen in Python

Beitragvon Hans » Mo 8. Nov 2010, 08:24

Datentypen in Python



Python kennt eine Reihe von Datentypen.

Integer oder auch Ganzzahl
Es handelt sich um Zahlen ohne Nachkommastelle. Sind alle verwendeten Werte innerhalb einer Funktion vom Typ Integer, dann ist das Ergebnis auch Integer. Du kannst einem Wert in der Funktion 0.0 hinzu addieren und das Ergebnis ist dann Floatingpoint.

Floatingpoint Dezimalzahlen
Es handelt sich um Zahlen mit Nachkommastellen

Boolean oder auch Wahrheitswert
Dieser Datentyp kann nur True oder False (Wahr oder Falsch) sein.

String
Zeichenkette
Ein schwierig zu behandelnder Datentyp. Zunächst einmal kann er in unterschiedlichen Zeichencodierungen vorkommen. Die z. Zt. geläufigste ist UTF8. Weiter unten mehr dazu.

Ein String ist eine Zeichenkette welche in " (Anführungszeichen) oder ' (Hochkomma) eingeschlossen wird. Schließt man einen String in """ oder ''' ein, so darf dieser String auch über mehrere Zeilen gehen.

Ein String kann auch Sonderzeichen enthalten. Sollen diese nicht weiter interpretiert werden, so sind sie mit einem \ (Backslash, Fluchtzeichen) zu maskieren. Um also einen Backslash auszugeben muss die Codezeile so aussehen:
Code: Alles auswählen
print "\\"
. Die Zeichenkombination "\n" erzeugt bei der Ausgabe einen Zeilenumbruch. Strings können über den Operator + zu einem neuen String verbunden werden.
Code: Alles auswählen
>>> a="GIMP"
>>> b="Atelier"
>>> c= a + '-' + b
>>> print c
GIMP-Atelier
>>>


Listen
Die Liste ist eine Aneinanderreihung von Feldern und wird in eckige Klammern eingeschlossen. Das erste Feld hat den Index 0. Mit diesem Index kann man gezielt auf einzelne Felder zugreifen.
Code: Alles auswählen
>>> l = [1,2,3,4,5,6,7,8,9,0]
>>> print l[0]
1
>>> print l[4]
5
>>>


Tupel
Der Tupel ist ein nicht veränderbares Wertefeld, d. h. es kann immer nur der ganze Tupel geändert werden, nicht aber ein einzelner Wert darin. Jeder Wert eines Tupels kann ein Anderer Datentyp sein. Tupel werden bei der Definition üblicherweise in rund Klammern eingeschlossen, was aber nicht Pflicht ist.
Code: Alles auswählen
>>> l=(1,2,3,4,5,6,7,8,9,0)
>>> print l
(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
>>> eins, zwei, drei, vier, fuenf, sechs, sieben, acht, neun, zehn = l
>>> print eins
1
>>> print fuenf
5
>>>


Assoziative Felder
Darunter versteht man eine Ansammlung von Feldern, deren Index ein Name ist. Der Name kann numerisch als auch alphanumerisch sein. Assoziative Felder werden bei der Definition in geschweifte Klammern gestellt.
Code: Alles auswählen
>>> Z={
   1:"eins",
   2:"zwei",
   3:"drei",
   4:"vier"
   }
>>> print Z
{1: 'eins', 2: 'zwei', 3: 'drei', 4: 'vier'}
>>> print Z[1]
eins
>>> print Z[2]
zwei
>>> S={
   "eins":1,
   "zwei":2,
   "drei":3,
   "vier":4
   }
>>> print S["eins"]
1
>>> print S["drei"]
3
>>>


Object Objekt
Kann ein beliebiges Objekt sein. Eigentlich ist der vorher besprochene String ein Objekt. Objekte leiten sich von Klassen ab und können Daten (Werte) und Methoden (Prozeduren und Funktionen) enthalten. Ein Objekt kann wiederum andere Objekte enthalten. Beim Programmieren werden die Objekte mit einem Punkt verbunden. Beispiel:
Code: Alles auswählen
>>> a='Hallo GIMP-Atelier e.V.'
>>> a.split()
['Hallo', 'GIMP-Atelier', 'e.V.']
>>> a.upper()
'HALLO GIMP-ATELIER E.V.'
Die Methoden verändern das Object nur, wenn es programmiert wurde. Hier ist das Objekt ein String, welcher der Variablen a zugewiesen wurde. Rufen wir die Methode split() auf, dann bekommen wir den String als Array zurück, wobei jedes Feld ein Wort aufnimmt.
Gibt man auf der Pythonshell dir("object") ein dann bekommst du alle Methoden und Daten des Objektes angezeigt.
Code: Alles auswählen
>>> dir("a")
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>>




Bild
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH

Python Bibliotheken (Module)

Beitragvon Hans » Mo 8. Nov 2010, 08:26

Python Bibliotheken (Module)


Wenn man ein umfangreiches Programm hat, dann ist es nicht ratsam, sämtlichen Code in eine Programmdatei zu schreiben. Weil Programmierer nun einmal bequeme Leute sind, bedienen sie sich an bereits von anderen Leuten erstellte Dateien. Sie sind so bequem, dass sie nicht einmal den Code aus den fremden Dateien kopieren. Sie teilen Python einfach mit, welche Datei noch berücksichtigt werden soll und schon sollte es laufen.

Ganz so einfach ist es leider nicht. Diese vorgefertigten Dateien nennt man Library (Bibliothek, Modul). Python besitzt von Haus aus schon eine Unmenge an Bibliotheken. Bibliotheken darfst du auch selbst erstellen.

Die wichtigsten Librarys für GIMP User sind
  • gimpfu zur Anbindung yon Python an GIMP
  • math für Mathematische Funktionen, z. B. Winkelberechnung
  • sys Zugriff auf das Betriebssystem
  • os für die Unterscheidung ob Windows, Mac oder Linux vorliegt
Es gibt verschiedene Methoden eine Library einzubinden. Ich mache das einmal beispielhaft am Modul sys

Variante 1
Code: Alles auswählen
>>> import sys
>>> print sys.platform
linux2
>>>
Das Modul wird bekannt gegeben und kann verwendet werden. Bei der Verwendung ist der Name des Moduls voranzustellen.

Variante 2
Code: Alles auswählen
>>> from sys import platform
>>> print platform
linux2
>>>
Es wird nur das Objekt platform importiert. Der Zugriff erfolgt nun ohne dass man sys voranstellt

Variante 3
Code: Alles auswählen
>>> from sys import *
>>> print platform
linux2
>>>
Es ist dies wie Variante 2 aber es wird alles was sich im Modul sys befindet, eingebunden. Dabei ist zu beachten, dass es zu Kollisionen kommen kann, wenn diverse Module Definitionen mit gleichem Namen haben. Die letzte Definition überschreibt dann die vorherige.






Bild
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH

Strukturen in Python

Beitragvon Hans » Mo 8. Nov 2010, 08:27

Strukturen in Python


Normalerweise soll ein Quellcode von oben nach unten abgearbeitet werden. Aber das ist graue Theorie. Wir kommen sehr schnell dahin, dass wir unterschiedliche Bedingungen haben und uns jedes mal fragen müssen, was wir tun sollen, wenn ein eine Variable einen bestimmten Wert aufweist. Nehmen wir an wir haben folgende Codezeile auszuführen
Code: Alles auswählen
   a=5
   b=0
   c=a/b
Wir reden hier von 0 nicht von null! Das ist etwas völlig anderes. Es ist so ziemlich jedem bekannt, dass man eine Zahl nicht durch 0 teilen kann.Also müssen wir uns etwas einfallen lassen, wie wir die Klippe umschiffen. Üblicherweise macht man das so
Code: Alles auswählen
   a=5
   b=0
   if b == 0:
      c=9999999
   else:
      c=a/b
Das war schon alles. Ich habe c einen wert zugewiesen, welcher im Verlauf des Programms als ungültig erkannt werden kann. Es gibt natürlich noch andere Methoden, aber fahren wir fort. Nehmen wir an, dass b den kleinst möglichen Wert ungleich 0 hat (ja, auch Computer haben ihre Grenzen), dann versagt obige Methode Was tun? Das ist die Sache des Programmierers dieses abzufangen.

Die erste Regel heißt, verwende möglichst Integer und boolsche Datentypen. Mit boolschen Datentypen kann man zwar nicht rechnen, aber sie sind hervorragend geeignet einen Ja / Nein Sachverhalt wiederzugeben.

Die zweite Regel heißt: Nimm dich in acht vor Dezimalzahlen. Beispiel
Code: Alles auswählen
   a=5
   b=0.0000000000001
   if abs(b) < 0.0001:
      c=9999999
   else:
     C=a/b
Es kann sein, dass der Wert für B zulässig ist, kann aber auch sein, dass das eigentlich schon als 0 zu behandeln ist. Ich gehe hier davon aus, dass eine Behandlung wie bei 0 angewendet wird.

Die IF Schleife kann auch geschachtelt werden: Das würde dann so aussehen:
Code: Alles auswählen
   a=5
   b=3
   if b=0:
     ..........
   elseif b=2:
      .........
   elseif b=1:
      .........
   else abs(b) < 0.0001:
      c = 99999
Hier kann man beliebig viele elseif Bedingungen nacheinander eingeben, aber irgendwann verlierst du den Überblick. Du darfst auch andere Sachen abfragen, es muss nicht immer b sein.

noch eleganter lassen sich if Befehle mit boolschen anwenden. Eine boolsche Variable kann nur den wert True oder False annehmen. Im code sieht das das dann so aus
Code: Alles auswählen
GoodResult=True
if GoodResult:
   print "Klasse, es gibt Weihnachtsgeld"
Else:
  print "War ja wohl ein Schuss in den Ofen"
Man kann boolsche Variablen auch negieren. Dann sieht die gleiche Abfrage so aus
Code: Alles auswählen
GoodResult=True
if not GoodResult:
   print "War ja wohl ein Schuss in den Ofen"
Else:
   print "Klasse, es gibt Weihnachtsgeld"
Welche Schreibweise du bevorzugst, ist reine Geschmackssache. Je nach Aufgabenstellung verwende ich beide Varianten.


kommen wir zur for Schleife. Wir weisen einer Variablen den Wert 'GIMP-Atelier e.V.' zu. Python behandelt Strings als Listen, dass muss man wissen. mit a[0] kann ich auf das erste Element zugreifen, also das 'G'. jetzt sollen wir den String auf dem Bildschirm ausgeben, wobei in jeder Zeile nur ein Wert stehen darf. Masochisten wählen diese Methode
Code: Alles auswählen
a='GIMP-Atelier e.V.'
print a[01]
print a[02]
print a[03]
print a[04]
print a[05]
print a[06]
print a[07]
print a[08]
print a[09]
print a[10]
print a[11]
print a[12]
print a[13]
print a[14]
print a[15]
print a[16]
Wer solchen Code produziert, der sollte besser in den Kindergarten gehen. Diese Methode funktioniert auch nur bei einem String mit siebzehn Zeichen. Es muss also etwas besseres her. Wir können das mit einer for Schleife elegant lösen.
Code: Alles auswählen
a='GIMP-Atelier e.V.'
for b in a:
    print b
Python geht her und weist b nacheinander jeden Buchstaben aus a b zu und gibt diesen auf dem Bildschirm aus. Danach kehrt das Programm in den Schleifenkopf zurück und nimmt sich den nächsten Buchstaben vor. Wenn kein Zeichen (ein Leerzeichen ist auch ein Zeichen' mehr vorhanden ist, wird die Schleife verlassen und mit den nachfolgenden Codezeilen fortgefahren.


Als letztes haben wir noch die While Schleife. Diese wird ausgeführt, solange die Bedingung im Funktionskopf True ist. Kleines Beispiel
Code: Alles auswählen
Fieber = True
while Fieber:
  if Fieber < 37.5:
      Fieber = False
Wann schließt sich dieses Programm? Richtig, sobald die Temperatur unter 37,5°unterschritten hat wird die wird die Variable Fieber auf False gesetzt wodurch sich die Schleife dann beendet.

kommen wir nochmals zu unserm Stringobjekt "GIMP-Werkstatt e.V. ". Das was wir mit einer for - Schleife erledigt hatten, geht auch mit einer while Schleife.
Code: Alles auswählen
a="GIMP-ATELIER e.V."
i=0
while i <= len(a) - 1:
   print a[i]
   i=i+1
Das Konstrukt ist schon etwas komplizierter, aber unüblich ist es in der Programmierung nicht..




Bild
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH

Abfangen von Fehlern

Beitragvon Hans » Do 11. Nov 2010, 15:13

try .... except ..... finally
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH

Die wichtigsten Befehle in Python

Beitragvon Hans » Do 11. Nov 2010, 15:13

Die wichtigsten Befehle in Python


Inline Diese Befehle sind in Python enthalten

  • print
    gefolgt von einer beliebigen Anzahl an Parametern gibt diese auf STDOUT (Standardausgabe) aus. Die Zeichenkette \n innerhalb eines Strings weißt print an, einen Zeilenvorschub auszugeben.
  • int(string)
    Erwartet, dass eine Zeichenkette übergeben wird. Wandelt diese in einen Integerwert.
  • float(string)
    Erwartet eine Zeichenkette. Wandelt diese in einen Dezimalwert um. Vorsicht! Aufgrund internationaler Gepflogenheiten, trennen einige Länder durch Punkt statt durch Komma. Sollte man möglichst nicht einsetzen.
  • dir(objekt)
    listet alle Methoden und Daten des Objektes.
  • help(object)
    Zeigt die Hilfe zu einem Objekt an
  • exit() beendet python

sys Betriebssystem
  • executable
    gibt den Namen des gerade ausgeführten Programms aus, z. B. /usr/bin/python
  • modules
    gibt die Liste der geladenen Module aus
  • path
    gibt die Variable PATH aus. Die hier gelisteten Verzeichnisse sucht Python ab, wenn Module importiert werden sollen
  • platform
    gibt die verwendete Plaltform aus. Mögliche Rückgabewerte sind :'posix', 'nt', 'os2', 'ce', 'java', 'riscos'

os Betriebssystem
  • abort
    abort beendet den Pythoninterpreter augenblicklich. Sollte nur äußerst sparsam eingesetzt werden
  • chdir(string)
    wechselt das Verzeichnis
  • getenv(string)
    Gibt eine Systemvariable zurück, Beispiel: os.getenv("HOME")

math Betriebssystem
    acos
    arcus cosinus
    acosh
    arcus cosius hyperbolicus
    asin
    arcus sinus
    asinh
    arcus sinus hyperbolicus
    atan
    arcus tangens
    atan2
    arcus tangens2
    atanh
    arcus tangens hyperbolicus
    ceil
    liefert bei Dezimalzahlen die nächst größere Ganzzahl zurück
    cos
    cosinus
    cosh
    cosinus hyperbolicus
    degrees
    wandelt rad in Grad (Winkel)
    e
    die Euler'sche Zahl e oder auch Wachstumszahl (Basis des natürlichen Logarithmus)
    exp
    gibt e**x zurück (e hoch x)
    fabs
    liefert den absoluten Wert zurück
    factorial

    floor
    liefert bei Dezimalzahlen die nächst kleinere Ganzzahl zurück
    fmod
    Liefert den Rest einer Division zurück
    frexp

    fsum
    liefert die Summe von Dezimalzahlen zurück
    hypot

    isinf

    isnan

    ldexp

    log
    Logarithmus zur Basis e
    log10
    Logarithmus zur Basis 10
    log1p

    modf

    pi
    Pi
    pow
    power, potenziert
    radians
    wandeld Grad (Winkel) in RAD
    sin
    sinus
    sinh
    sinus hyperbolicus
    sqrt
    liefert zweite Wurzel aus x
    tan
    tangens
    tanh
    tangens hyperbolicus
    trunc
    liefert den Ganzzahlanteil einer Zahl. Es wird nicht gerundet



Bild
Bild
Benutzeravatar
Hans
 
Beiträge: 2883
Registriert: So 27. Jun 2010, 12:56
Wohnort: Angeles City, PH


Zurück zu Python

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast