Python中输入1个要计算的符合化学分子式规则的字符串

输入1个要计算的符合化学分子式规则的字符串,如C3O26N4。字母不区分大小写。
输出该分子式的相对分子量,保留1位小数。
元素的相对原子质量用字典表示,如:{'C':12.0, 'O':16.0, 'N':14.0 }。
只考虑元素周期表的前30个即可。

import re

a = "C3O26N4"
dd = {'C':12.0, 'O':16.0, 'N':14.0 }
ptn = re.compile('([A-Z]+)([\d]+)')

b = ptn.findall(a)
print(b)

weight = 0.0
for code, nums in b:
  if code in dd:
    num = int(nums)
    weight += dd[code] * num
    print(code, num)

print(weight)