Teil 44 : Einfache PSE-Datenbank mit Python 1. Speichere die folgende Datei als pse.py ab und führe sie mit python pse.py im Terminal aus. Verwende dabei verschiedene Element-Schlüssel und unterschiedliche Eigenschaften. #!/usr/bin/env python #Daten ELEMENTE={'H':['Wasserstoff',1,0,1,'2,2'], 'He':['Helium',2,2,2,'nicht bekannt'], 'Li':['Lithium',3,4,1,'1,0'], 'Be':['Beryllium',4,5,2,'1,6'], 'B':['Bor',5,6,3,'2,0'], 'C':['Kohlenstoff',6,6,4,'2,5'], 'N':['Stickstoff',7,7,5,'3,0'], 'O':['Sauerstoff',8,8,6,'3,4'], 'F':['Fluor',9,10,7,'4,0'], 'Ne':['Neon',10,10,8,'nicht bekannt'], 'Na':['Natrium',11,12,1,'0,9'], 'Mg':['Magnesium',12,12,2,'1,3'], 'Al':['Aluminium',13,14,3,'1,6'], 'Si':['Silicum',14,14,4,'1,9'], 'P':['Phosphor',15,16,5,'2,2'], 'S':['Schwefel',16,16,6,'2,6'], 'Cl':['Chlor',17,18,7,'3,2'], 'Ar':['Argon',18,22,8,'nicht bekannt'], 'K':['Kalium',19,20,1,'0,8'], 'Ca':['Calcium',20,20,2,'1,0']} EIGENSCHAFTEN=['Elementname', 'Protonenzahl', 'Neutronenzahl', 'Valenzelektronenzahl', 'Elektronegativitaet'] GRUPPEN=['den 'den 'der 'der 'der 'den 'den 'den Alkalimetallen', Erdalkalimetallen', Bohrgruppe', Kohlenstoffgruppe', Stickstoffgruppe', Chalkogenen', Halogenen', Edelgasen'] # Abfrage und Ausgabe X=raw_input('Gib das Elementsymbol ein: ') TEST=ELEMENTE.has_key(X) if TEST == True: print 'Gib die entsprechende Nummer fuer die gewuenschte Information ein:' print '1 => Protonenzahl' print '2 => Neutronenzahl' print '3 => Valenzelektronenzahl' print '4 => Elektronegativitaet' Y=raw_input('Ich will Nummer: ') print 'Die',EIGENSCHAFTEN[int(Y)],'von',ELEMENTE[X][0],'ist',ELEMENTE[X][int(Y)] print 'Das',ELEMENTE[X][0],'steht in der',ELEMENTE[X][3],'. Hauptgruppe',GRUPPEN[int(ELEMENTE[X][3])-1] else: print 'Das angegebene Elementsymbol ist nicht in dieser \n kleinen Datenbank von nur 20 Elementen enthalten. Waehle ein ein anderes aus!' 2. Ändere das Programm pse.py so ab, dass bei vorhandenem Schlüssel immer alle Informationen zu einem Element in der Anordnung ausgegeben werden: Eigenschaft = jeweiliger Wert, neue Zeile und speichere als pse2.py 3. Lade auf der Seite http://www.zum.de/Faecher/Materialien/gebhardt/JStest/testedit.lx/index.htm den JavaScript-basierten Test-Editor http://www.zum.de/Faecher/Materialien/gebhardt/JStest/download/testedit.lx.zip herunter, entpacke ihn und vergleiche den Aufbau der Datei testedit.lx/projekt/parameter.js Informiere Dich auf der folgenden Seite über Arrays in JavaScript http://www.galileocomputing.de/openbook/javascript_ajax/04_programmieren_005.htm Speichere die folgende Datei als array_js.html ab und öffne sie im Firefox. <html> <head><title>Arrays in JavaScript</title></head> <body> <script language="JavaScript" type="text/javascript"> <!-var OX = ["Sauerstoff", "8", "6", "0"]; document.write("Das Element " + OX[0] + " hat " + OX[1] + " Protonen im Kern und steht in der " + OX[2] + ". Hauptgruppe. Das Elementsymbol lautet " + OX[3] + "<br></br>") //--> </script> <p>Auf Wiedersehen - dr&uuml;cke zum Wiederholen einfach im Browser auf Ansicht-Aktualisieren oder [Strg + R]</p> </body> </html> Nur für Fortgeschrittene: Versuche mit den Techniken aus Teil 23 HTML-Spezial: JavaScript, eine Interaktive Abfrage des Elements einzubauen und für Wasserstoff als zweitem Element den Datenbestand zu erweitern. 4. Speichere die folgende Datei als array.sh ab und führe sie mit ./array.sh im Terminal aus. #!/bin/bash OX=("Sauerstoff" 8 6 O) echo -e "Das Element "${OX[0]}" hat "${OX[1]}" Protonen im Kern \n und steht in der "${OX[2]}". Hauptgruppe. Das Elementsymbol lautet "\'${OX[3]}\'"." echo -e "In der Liste OX = "${OX[@]}" sind "${#OX[*]}" Elemente enthalten." Vergleiche mit Hilfe der Tabelle die Syntax für Arrays in der Bash und Listen in Python: Ergänze die fehlenden Einträge mit Hilfe von Teil 43, Aufgaben 1 und 4. Bash Python Listendefinition LB=(Element1 Element2 ...) LP=[Element1,Element2,...] Abfrage des Elements 2 $(LB[1]) LP[1] Abfrage der gesamten Liste ${OX[@]} Abfrage der Anzahl aller Elemente ${#OX[*]} Welcher grundsätzliche Unterschied fällt Dir im Vergleich der Python-Syntax mit der Bash-Syntax auf? 5. Für Fortgeschrittene: Begründe mit Hilfe des in diesem Teils vorgenommenen Vergleichs der Skriptsprachen Python, Bash und JavaScript, welche für die (zunächst lokale) einfache Datenorganisation, also noch ohne Datenbankmanagementsystem (DBMS) am besten geeignet ist! Welcher integrierte Datentyp ist in Kombination mit Listen hier besonders mächtig? Welche zusätzlichen Stärken hat Python, wenn es darum geht, in einem Netzwerk entfernte, bereits bestehende Datenbanken anzusprechen? Wiederhole zunächst Teil 37 - CMS-Spezial 2: Dynamische Inhalte und lies dazu die folgenden Artikel: http://de.wikipedia.org/wiki/PHP http://de.wikipedia.org/wiki/Common_Gateway_Interface http://de.wikipedia.org/wiki/Mod_python http://de.wikipedia.org/wiki/Mod_perl