计算有机物的相对分子质量
京东327数据分析笔试代码题1
C:12 O:16 H:1 N:14
例如:
C2H5OH 46
CH2O 30
C10H12O9N22 584
C14HON2
CO2 44
#将字符串转化为两个数组,然后再计算。
s = input()
L = ['C','H','O','N']
LC = []
Lint = []
sint = ""
length = len(s)
for i in range(length-1):
if s[i] in L:
LC.append(s[i])
if s[i+1] in L:
print(s[i])
#Lint.append(sint)
Lint.append(sint)
sint = "1"
else:
Lint.append(sint)
sint = ""
else:
sint = sint + s[i]
if s[length-1] in L:
LC.append(s[length-1])
Lint.append(sint)
sint = "1"
else:
sint = sint + s[length-1]
Lint.append(sint) # add last int
Lint.pop(0) # del first element
print (LC)
print (Lint)
#假定 C H O N 的分子量分别为 12 1 16 14 化学快忘光了,不知道记得对不对
d = {"C":12,"H":1,"O":16,"N":14}
FT = 0 # 分子量
for i in range(0,len(LC)):
FT += int(d[LC[i]]) * int(Lint[i])
print (s +" 的分子量:" , FT)
#C2H5OH 46
#CH2O 30
#C10H12O9N22 584
#C14HON2
#CO2 44