我正在编写计算核反应能量输出的代码,并且我需要确保如果用户输入的某些元素重复,则某个函数将绕过它们。照片中显示的矩形显示了元素匹配检查的位置。但是我怎样才能做到,如果一个元素在列表中,那么电子不会从它中减去并跳过,但从其他元素中,如果它们与列表不匹配,电子将被减去。

from data import elements_dict
import scipy
import math
elem_part = ['N', 'P']
electron_mass = scipy.constants.physical_constants['electron mass in u']
a = map(str, input("Enter your element: ").upper())
b = map(str, input("Enter your element: ").upper())
c = map(str, input("Enter your element: ").upper())
d = map(str, input("Enter your element: ").upper())
if [a, b, c, d] in elements_dict:
if [a, b, c, d] in elem_part:
else:
element1 = elements_dict[a]
r1 = element1 - round(element1) * round(electron_mass[0], 5)
element2 = elements_dict[b]
r2 = element2 - round(element2) * round(electron_mass[0], 5)
element3 = elements_dict[c]
r3 = element3 - round(element3) * round(electron_mass[0], 5)
element4 = elements_dict[d]
r4 = element4 - round(element4) * round(electron_mass[0], 5)
e = ((r1 + r2) - (r3 + r4)) * 931.5
t = abs(e)*(1+a/b)
print(e, t)
else:
print('Element does not exist')
如果我正确理解了逻辑
但为什么要减去电子数乘以元素的圆形质量呢?我添加了与电子数相对应的原子序数