Direkt zum Hauptbereich

PSE - Python GUI-App

GitHub: https://github.com/Pulsar7/PSE

Zusammenfassung

Ich bin kein verifizierter Chemiker oder ein anderweitig akademisch Ausgebildeter, der die angegeben Informationen zum Periodensystem verifizieren kann. Die verwendeten Daten werden unten geschildert. Meine Idee zur Visualisierung ist relativ simpel. Zu jedem Element wird ein Button-Element erstellt worin Basisinformationen zum jeweiligen Element angezeigt werden:

  • Ordnungszahl
  • Masse (u)
  • Symbol

Damit das Layout “moderner” aussieht, wollte ich zu Beginn das Modul ttkbootstrap einbinden, was jedoch nicht so geklappt hat, wie ich es mir vorgestellt hatte. Das Periodensystem wird in 11 Serien unterschieden und hierzu werden 11 verschiedene Farben benötigt. Da ich jedoch keinerlei Möglichkeit finden konnte, wie ich Farben zu ttkbootstrap hinzufügen könnte, habe ich das Modul vorerst ausgeschlossen.

Update 1.3

Es wurden mehr Informationen zu jedem einzelnen PSE-Element hinzufügt. Damit die Daten auch sinnvoll gespeichert werden, habe ich sqlite3 eingebunden und die PSE-Daten dort in zwei tables unterteilt: “Elements” & “ElementInfos”.

  1. Elements - Columns:
    • ordnungszahl, symbol, name, masse_u, aggregatzustand, serie
  2. ElementInfos - Columns:
    • ordnungszahl, entdeckung, vorkommen, nebeninfos

Um nicht alle Daten manuell in eine Datenbank schreiben zu müssen, habe ich ein Script geschrieben, dass die JSON-Datei ausliest und diese Daten jeweils in die Datenbank automatisch speichert. Da Informationen, wie das Entdeckungsjahr, noch fehlten, wurden mithilfe von den Python-Modulen requests und BeautifulSoup die jeweiligen Daten aus www.periodensystem.info bezogen.

Update 1.2

Eine Legende wurde nun für eine verbesserte Übersicht hinzugefügt. In den folgenden Versionen werden noch ein paar Funktionen hinzugefügt. Es wurde nun das Modul customtkinter eingebunden, damit das Layout den heutigen Standards angepasst werden kann. Außerdem wurden für eine bessere Übersicht die config.json-Datei in zwei Dateien geteilt: src/pse.json & src/gui_conf.json. Wie in den folgenden Versionen nun Informationen, wie die Entdeckung etc., abspeichern muss noch entschieden werden. Womöglich wird sqlite3 als mobile Datenbank eingebunden und für die GUI-APP soll weiterhin eine .json-Datei ausreichen.

EXE - Stand: Version 1.1

Die EXE-Datei wurde mit dem Python-Modul pyinstaller erstellt: pyinstaller –onefile -w ‘pse.py’. Sie wurde jedoch noch nicht mit einem Windows-Gerät geprüft.


Datenproblem

Beim Notieren der verschiedenen Daten sind mir ein paar Unstimmigkeiten z.B. bezüglich der 7. Periode (Zeile) aufgefallen. Als Beispiel nehme ich das Element Livermorium, oder wie es früher genannt wurde: Ununhexium, mit der Ordnungszahl 116. 1 Während bei periodensystem.info behauptet wird, dass die Serie des Elements nicht bekannt ist 2, behauptet chemie.de, dass es den Metallen zugeschrieben wird. 3 Da “[…] noch keine Kenntnisse über Eigenschaften des Elements und seiner Verbindungen vor[liegen]”4, habe ich mich vorerst für die Serie “Unbekannt” entschieden, da ich keine exakte Aussage darüber finden konnte. 5

Verzeichnis


  1. Askdifference.com, Stand: 31.01.2023↩︎

  2. Periodensystem.info, Stand: 31.01.2023↩︎

  3. Chemie.de, Stand: 31.01.2023↩︎

  4. Lernhelfer.de, Stand: 31.01.2023↩︎

  5. Spektrum.de, Stand: 31.01.2023↩︎

Kommentare

Beliebte Posts aus diesem Blog

Euklidischer Algorithmus in Java

Einleitung Ein bekannter Algorithmus zum Berechnen des größten gemeinsamen Teilers (kurz: ggT), ist der euklidische Algorithmus und in diesem Artikel soll genau dieser Algorithmus in Java nachkonstruiert werden. Main.java Auch dieses Mal wird wieder das String-Array args aus der main -Funktion benutzt um die Benutzeingabe abzufragen. Da dieses Mal keine zusätzlichen Bibliotheken benötigt werden, beginne ich mit gleich mit der Verarbeitung der Benutzeingabe: if (args.length == 2) { char[] first_number = args[0].toCharArray(); char[] second_number = args[1].toCharArray(); if (check_number(first_number) == true) { if (check_number(second_number) == true) {} } } Auch in diesem Code habe ich das String-Array in ein Char-Array umgeformt, damit die einzelnen Character in der chec...

Legends of Andor

Im Folgenden wird die Programmiersprache C verwendet, dessen Grundlagen ich derzeit noch erlerne, weshalb manche Informationen über technische Hintergrunddetails inakkurat erklärt sein könnten. Sollten Details, Informationen oder Formalitäten nicht korrekt sein, bin ich dankbar, wenn ich darauf hingewiesen werde. Erklärung Bei diesem “Spiel” handelt es sich nicht um ein aktives Spielerlebnis, sondern um eine statistische Berechnung der Schäden, die die einzelnen Spieler anrichten könnten. Zusammengefasst gibt es drei Spieler ( Magier , Bogenschütze , Gegner ), die jeweilig unterschiedliche Regeln beim Würfeln (6-seitig) besitzen, woraus der potentiell verursachte Schaden berechnet wird. Magier Besitzt vier Würfel Nach jedem Wurf soll entschieden werden, ob der Wurf wiederholt werden soll oder nicht bis die vier Würfel aufgebraucht sind Bogenschütze Besitzt einen Würfel Nach dem Wurf soll entschieden werden, ob der Würfel umgedreht werden soll Gegner Besitzt zwei Würfel...