Python Code Molare Masse?

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