感谢您的帮助和耐心等待。
我是python的新手,正在尝试计算特定原子符号出现的次数除以原子总数。因此该函数接受字符串列表作为参数,并返回包含'C','H','O'和'N'的分数的列表。但是我不断获得一个结果,而不是为每个原子获得全部。我的尝试如下:
Atoms = ['N', 'C', 'C', 'O', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'O', 'H']
def count_atoms (atoms):
for a in atoms:
total = atoms.count(a)/len(atoms)
return total
然后
faa = count_atoms(atoms)
print(faa)
但是我只得到一个结果0.07692307692307693。我应该得到一个以[0.23076923076923078,.. etc]开头的列表,但我不知道该怎么做。我应该使用for循环和return语句计算分子中'C','H','O'和'N'原子符号的分数。 :(请帮助,将不胜感激。
最佳答案
好吧,您在第一个循环中返回变量total。为什么不使用列表存储值?像这样:
atoms = ['N', 'C', 'C', 'O', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'O', 'H'] #python is case sensitive!
def count_atoms (atoms):
return_list = [] #empty list
for a in atoms:
total = atoms.count(a)/len(atoms)
return_list.append(total) #we add a new item
return return_list #we return everything and leave the function