跳转到主要内容

又一个元素包

项目描述

pyelementary

又一个元素包

GitHub Actions Build Status codecov

Elementary是另一个用Python定义的元素包。它被编写成可以在多个不同的单位系统和类中使用。在最简单的情况下,它除了主Python库外没有其他依赖。然而,这个包的真正目的是自动与多个单位类协同工作,并具有一般的灵活性。

用法

标准

您可以通过导入标准Element类立即使用Elementary。请参阅文档了解详情。每个元素都是唯一定义的,以允许进行is比较。

In [1]: import pyelementary as elm

In [2]: h = elm.Element(atomic_number=1)

In [3]: h is elm.Element(name="hydrogen")
Out[3]: True

In [4]: h.mass
Out[4]: 1.00782503223

支持的属性包括

  • 原子序数
  • 符号
  • 名称
  • 质量(以原子质量单位计)
  • 周期
  • 共价半径(以埃计)

每个属性都可以用来获取元素或元素列表。使用Element()时,浮点数四舍五入到最近的4位小数。

In [5]: elm.Element(mass=1.0078)
Out[5]: Element(name='hydrogen', symbol='H', atomic_number=1, mass=1.00782503223, period=1, group=1, covalent_radius=0.31)

使用Element()检索元素可能相当慢,因为会检查多个不同的情况。如果您的搜索更具体,可以直接在Element.registry访问每个属性的注册表。所有浮点数的键都四舍五入到4位小数。

In [6]: elm.Element.registry.mass[1.0078]
Out[6]: Element(name='hydrogen', symbol='H', atomic_number=1, mass=1.00782503223, period=1, group=1, covalent_radius=0.31)

对于具有相同值的多个元素的属性,返回一个按顺序排列的元素元组。

In [8]: elm.Element(period=5)
Out[8]:
(Element(name='rubidium', symbol='Rb', atomic_number=37, mass=84.9117897379, period=5, group=1, covalent_radius=2.2),
 Element(name='strontium', symbol='Sr', atomic_number=38, mass=87.9056125, period=5, group=2, covalent_radius=1.95),
 Element(name='yttrium', symbol='Y', atomic_number=39, mass=88.9058403, period=5, group=3, covalent_radius=1.9),
 Element(name='zirconium', symbol='Zr', atomic_number=40, mass=89.9046977, period=5, group=4, covalent_radius=1.75),
 Element(name='niobium', symbol='Nb', atomic_number=41, mass=92.906373, period=5, group=5, covalent_radius=1.64),
 Element(name='molybdenum', symbol='Mo', atomic_number=42, mass=97.90540482, period=5, group=6, covalent_radius=1.54),
 Element(name='technetium', symbol='Tc', atomic_number=43, mass=97.9072124, period=5, group=7, covalent_radius=1.47),
 Element(name='ruthenium', symbol='Ru', atomic_number=44, mass=101.9043441, period=5, group=8, covalent_radius=1.46),
 Element(name='rhodium', symbol='Rh', atomic_number=45, mass=102.905498, period=5, group=9, covalent_radius=1.42),
 Element(name='palladium', symbol='Pd', atomic_number=46, mass=105.9034804, period=5, group=10, covalent_radius=1.39),
 Element(name='silver', symbol='Ag', atomic_number=47, mass=106.9050916, period=5, group=11, covalent_radius=1.45),
 Element(name='cadmium', symbol='Cd', atomic_number=48, mass=113.90336509, period=5, group=12, covalent_radius=1.44),
 Element(name='indium', symbol='In', atomic_number=49, mass=114.903878776, period=5, group=13, covalent_radius=1.42),
 Element(name='tin', symbol='Sn', atomic_number=50, mass=119.90220163, period=5, group=14, covalent_radius=1.39),
 Element(name='antimony', symbol='Sb', atomic_number=51, mass=120.903812, period=5, group=15, covalent_radius=1.39),
 Element(name='tellurium', symbol='Te', atomic_number=52, mass=129.906222748, period=5, group=16, covalent_radius=1.38),
 Element(name='iodine', symbol='I', atomic_number=53, mass=126.9044719, period=5, group=17, covalent_radius=1.39),
 Element(name='xenon', symbol='Xe', atomic_number=54, mass=131.9041550856, period=5, group=18, covalent_radius=1.4))

这些可以通过多个关键字参数来缩小。

In [9]: elm.Element(period=5, group=17)
Out[9]: (Element(name='iodine', symbol='I', atomic_number=53, mass=126.9044719, period=5, group=17, covalent_radius=1.39),)

单位

标准元素库中的默认单位是

  • 质量:原子质量单位
  • 长度:埃

来源

标准包中的数据来自qcelemental版本0.23.0,我们表示衷心的感谢。有关qcelemental的详细信息,请参阅文档。共价半径来自Alvarez 2008。

版权

版权(c)2022,Lily Wang

致谢

本项目基于Computational Molecular Science Python Cookiecutter版本1.6。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

pyelementary-0.1.2.tar.gz (55.9 kB 查看哈希)

上传时间

由...