你可以使用 Python 的 re 模块来判断输入的化学式是否合法。
下面是一个示例代码:
import re
def is_valid_formula(formula):
# 匹配化学式的正则表达式
pattern = r'^[A-Z][a-z]?(?:[0-9]+)?(?:[A-Z][a-z]?(?:[0-9]+)?)*$'
return bool(re.match(pattern, formula))
# 测试
formulas = ['H2O', 'NaCl', 'C6H12O6', 'CH3CH2OH']
for formula in formulas:
print(f'{formula}: {is_valid_formula(formula)}')
输出结果如下:
H2O: True
NaCl: True
C6H12O6: True
CH3CH2OH: True
这段代码使用了正则表达式来匹配化学式的格式。正则表达式的模式是:
- 以一个大写字母开头(表示元素)
- 可能跟着一个小写字母(表示元素的氧化状态)
- 可能跟着一个数字(表示元素的数量)
- 可能会有多个这样的组合,中间用小写字母隔开
通过这种方式,可以判断输入的化学式是否符合常规的格式,从而判断是否合法。