Die Übersichtlichkeit der Seite wird durch Javascript erhöht. Ist dies aktiviert, werden die Texte unter den Überschriften durch Anklicken der Überschriften ein- und ausgeblendet.
Ich möchte bei der Entwicklung zukünftiger Programme die einzelnen Funnktionen jeweils ausgiebig testen. Das Testen selbst wird in der interaktiven Python3-Schell durchgeführt. Allerdings ist es deutlich zu aufwendig die Funktion jeweils in diese Schell zu kopieren, zumal der Test in der Regel Änderungen nach sich zieht. Deshalb werde ich in jedem Projekt ein Modul test.py anlegen und jeweils am anfang folgendes importieren:
from imp import reload import test
Ein neues Einlesen nach dem ich Änderungen vorgenommen habe ist dann möglich durch:
reload(test)
In Python gibt es keinen Fragezeichenoperator. Der Fragezeichenoperator funktioniert wie folgt: Bedingung ? dann : sonnst Beispiel:
a==b ? a++ : a=b
In Python kann dieses Verhalten wie folgt nachgestellt werden: wert='wenn Bedingung' if Bedingung else 'sonst' Setzt den Wert von wert auf 'wenn Bedingung' sofern diese True ergibt, ansonnsten wird wert auf 'sonst' gesetzt. Beispiel:
typ = '.php' if privat else '.html'
Wenn privat im Beispiel True enthält, wird typ ='.php', anderen Falls wird typ='.html'
Für die Nutzung von RegularExpressions gibt es in Python das Modul re mit der Methode search. Zunächst muss dies also importiert werden:
import re from re import search from re import search as test
Die search-Methode aus dem Modul re erwartet 2 Parameter. Zuerst einen Regexausdruck als Zeichenkette und dann die zu durchsuchende Zeichenkette. Zurückgegeben wird ein Matchobjekt, wenn der Ausdruck auf die zu durchsuchende Zeichenkette passt oder none, wenn dieser nicht passt. Somit ist es leicht herauszufinden, ob es einen Treffer gibt, bzw. den Treffer auszulesen:
#Treffer = re.search(regEX,Zeichenkette) #bei import re #Treffer = search(regEX,Zeichenkette) #bei from re import search Treffer = test(regEX,Zeichenkette) #bei from re import search as test if Treffer: print ( "folgender Treffer gefunden:",Treffer.group() ) # werden mehrere Treffergruppen durch Runde Klammern erzeugt, # können diese durch einen Index abgerufen werden # print (" Gruppe 1: ", Treffer.group(1) ) print ( "Der Treffer beginnt in der Zeichenkette an Position", Treffer.start() ) print ( "und endet in der Zeichenkette an Position",Treffer.end() ) #print ( "Der Treffer beginnt in der Zeichenkette an Position", Treffer.span()[0] ) #print ( "und endet in der Zeichenkette an Position",Treffer.span()[1] ) print ( "Der Treffer ist an Position (Beginn, Ende)", Treffer.span() )
Ein Anwendungsbeispiel ist beim Einlesen einer Konfigurationsdatei im folgenden Abschnitt gezeigt.
Vorrausetzung die Datei .testcfg
Vorname: Maik Nachname: Friemel Ort: =Bad Öhnhausen PLZ: 30419 berufstätig Körpergröße 172 cm Zufall = haustier Alter=40 18Uhr schließen Haustiere 2 Haustier=Hund erfolgreich
Hier mit Hilfe von RegularExpressions:
#! /usr/bin/python3 # -*- coding: utf-8 -*- ''' Auslesen einer Konfigurationsdatei in Key - Werte - Paare eines Dictionarys Vorteil: für jede Zeile mit passender Formatierung wird ein Eintrag angelegt, wodurch es nicht nötig ist jede Zeile auf alle Schlüsselwörter zu prüfen. Am Ende können die Werte direkt über ein bestimmtes Schlüsselwort abgerufen werden. ''' import re #RegularExpressions Parameter = {} cfg = open(".testcfg") for zeile in cfg: m=re.search(r"^\s*([\w\däöüÄÖÜß]+)[\s=\:]+([\w\d\äöüÄÖÜß:\. _-]+)",zeile) if (m): Arg=m.group(1).lower() Wert=m.group(2) Parameter.update({Arg:Wert}) else: m=re.search(r"^\s*([\w\däöüÄÖÜß]+)\s+$",zeile) if (m): Arg=m.group(1).lower() Wert=True Parameter.update({Arg:Wert}) cfg.close() #print Parameter #alle in Schleife for key in Parameter.keys(): print key,' : ',str(Parameter[key]) print '******************************\n' #direkt über ein bestimmtes Schlüsselwort if 'vorname' in Parameter: print ("Vorname: " + Parameter["vorname"]) if 'nachname' in Parameter: print ("Nachname: " + Parameter["nachname"]) if 'plz' in Parameter: print ("PLZ: " + Parameter["plz"]) if 'ort' in Parameter: print ("Ort: " + Parameter["ort"]) if 'berufstätig' in Parameter: print ("berufstätig: "+ str(Parameter["berufstätig"])) if 'körpergröße' in Parameter: print ("Größe: " + Parameter["körpergröße"]) if 'haustier' in Parameter: print ("Haustier: " + Parameter["haustier"])