|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- s = 'C12H2O6N6'
- L =['C', 'H', 'O', 'N']
- LC = []
- Lint = []
- sint = ''
- for c in s:
- if c in L:
- LC.append(c)
- Lint.append(sint)
- sint = ''
- else:
- sint = sint + c
- Lint.append(sint)
- Lint.pop(0)
- print(LC)
- print(Lint)
- sum = 0
- d = {'C':12, 'H':1, 'O':16, 'N':14}
- for i in range(0,len(LC)):
- sum += int(d[LC[i]]) * int(Lint[i])
- print(s +'的相对分子质量为:',sum)
复制代码
这是我写的用列表的方式计算相对分子质量,如果用正则表达式的方式该如何计算?为什么要用正则表达式?这是因为很多情况下都不知道分子式的具体表达式,需要使用正则表达式对其进行分块,甚至有很多个分子式在excel中,该如何计算?也就是说如何循环计算下面excel表中相对分子质量?
本帖最后由 yjsx86 于 2018-1-25 20:39 编辑
分子质量是多少都忘了 只能帮到这里
- import re
- s = 'C12H2O6N6'
- rec = re.compile(r'([A-Z])(\d*)')
- print(dict(rec.findall(s)))
- # 结果
- {'C': '12', 'H': '2', 'O': '6', 'N': '6'}
复制代码
|
|