Python Code Molare Masse?
Wie berechne ich die Molare Masse auf Python ich habe hier meinen Ansatz aber komme überhaupt nicht weiter... die Summenformel (vom Datentyp String) die zugehörige molare Masse (als Datentyp float).
import pandas as pd
def Molmasse(summenformel):
Periodensystem=pd.read_excel('Periodensystem.xlsx')
symbol_massen=Periodensystem['symbol'],Periodensystem['atomic_weight']
Molmasse= 0.0
Wert=0
while Wert < len(summenformel):
symbol= summenformel[Wert]
Wert += 1
if i < summenformel[Wert]:
symbol += summenformel[Wert]
Wert += 1
2 Antworten
Iteriere über den ganzen String.
Ein Elementname ist ein Großbuchstabe gefolgt von höchstens einem Kleinbuchstaben.
Sind ein oder mehrere Ziffern dahinter, dann ist die molare Masse des Elements mit der Zahl malzunehmen und zur molaren Masse zu addieren. Ist keine Zahl dahinter, dann heißt das 1x, also nur die molare Masse des Elements addieren. Dann hin zum nächsten Element.
Wo Du die Werte herbekommst, wahrscheinlich aus der Excel-Datei, deren Struktur wir nicht kennen.
import pandas as pd
import re
def Molmasse(summenformel):
Periodensystem = pd.read_excel('Periodensystem.xlsx')
symbol_massen = dict(zip(Periodensystem['symbol'], Periodensystem['atomic_weight'])) # Erstelle ein Dictionary für schnelleren Zugriff
molare_masse = 0.0
# Nutze reguläre Ausdrücke, um Elemente und deren Anzahl zu finden
for match in re.findall(r"([A-Z][a-z]*)(\d*)", summenformel):
element = match[0]
anzahl = int(match[1]) if match[1] else 1 # Anzahl ist 1, wenn nicht angegeben
if element in symbol_massen:
molare_masse += symbol_massen[element] * anzahl
else:
return f"Fehler: Element {element} nicht im Periodensystem gefunden." # Fehlerbehandlung
return molare_masse