python 化学结构_PyOrganic
PyOrganic
介绍
一个使用类来描述有机化合物结构的Python库。
架构
Compound:描述化合物
Atom(抽象类) -> Carbon, Hydrogen:描述原子
Bond(抽象类) -> SingleBond, DoubleBond, TripleBond:描述键
示例
from PyOrganic import * # 导入 PyOrganic
Methane = Compound() # 定义化合物甲烷
C1 = Carbon(Methane) # 定义5个原子
H1 = Hydrogen(Methane)
H2 = Hydrogen(Methane)
H3 = Hydrogen(Methane)
H4 = Hydrogen(Methane)
SingleBond(C1, H1) # 连接原子
SingleBond(C1, H2)
SingleBond(C1, H3)
SingleBond(C1, H4)
Methane.entry_atom = C1 # 设置根原子
print(Methane.chemical_formula) # 输出化学式 -> CH₄
文档
class Compound
化合物
方法
def __init__(self)
构造化合物
属性
entry_atom: Atom
访问该化合物的入口点
只读属性
atoms: list[Atom]
该化合物所拥有的原子
chemical_formula: str
化学式
name: str
系统命名法下的名称(待补)
class Atom
原子
方法
def __init__(self, name: str, symbol: str, max_bonds: int, compound: Compound)
构造原子
name : 原子名称
symbol : 元素符号
max_bonds : 最大能连接的键数
compound : 从属的化合物
def set_bond(self, bond: Bond)
在该原子上单方面连接新的键
bond : 新连接的键
def spread(self, atoms: Iterable[Atoms])
递归寻找化合物中所有原子
atoms : 由所有原子组成的列表
只读属性
bonds: list[Bond]
获得原子上所连的键的集合
compound: Compound
该原子所属化合物
max_bonds: int
最大可连的键的数量
name: str
原子名称
next_atoms: list[Atom]
与该原子相连的原子
rest_bonds_value: int
剩余可连的键的数量
symbol: str
元素符号
class Carbon(Atom)
碳原子
方法
__init__(self, compound: Compound) => Atom.__init__('碳', 'C', 4, compound)
构造碳原子
compound : 从属的化合物
class Hydrogen(Atom)
氢原子
方法
__init__(self, compound: Compound) => Atom.__init__('氢', 'H', 1, compound)
构造氢原子
compound : 从属的化合物
class Bond
键
方法
def __init__(self, left_atom: Atom, right_atom: Atom, value: int, name: str):
构造键
left_atom : 键左侧的原子
right_atom : 键右侧的原子
value : 键值(共用电子对数),单键为1,双键为2,叁键为3
name : 键名
只读属性
left_atom: Atom
键左边连的原子
right_atom: Atom
键右边连的原子
value: int
键值(共用电子对数),单键为1,双键为2,叁键为3
name: str
键名
class SingleBond(Bond)
方法
def __init__(left_atom: Atom, right_atom: Atom) => Bond.__init__(leftatom, rightatom, 1, '单键')
构造单键
left_atom : 键左侧的原子
right_atom : 键右侧的原子
class DoubleBond(Bond)
方法
def __init__(left_atom: Atom, right_atom: Atom) => Bond.__init__(leftatom, rightatom, 2, '双键')
构造双键
left_atom : 键左侧的原子
right_atom : 键右侧的原子
class TripleBond(Bond)
方法
def __init__(left_atom: Atom, right_atom: Atom) => Bond.__init__(leftatom, rightatom, 3, '叁键')
构造叁键
left_atom : 键左侧的原子
right_atom : 键右侧的原子
class NotTheSameCompoundError(Exception)
当不同化合物的原子试图成键时抛出
class NotEnoughBondsError(Exception)
当剩余可连的键不足的原子试图成键时抛出
贡献者
ZZH
NKID00
python 化学结构_PyOrganic相关推荐
- iMeta | 中国农大杨栋组揭示膳食纤维化学结构对肠道微生物的调控
点击蓝字 关注我们 膳食纤维化学结构调控下肠道微生物动态变化 https://doi.org/10.1002/imt2.64 REVIEW ARTICLE ● 2022年11月6日,中国农业大学食品科 ...
- 以下构成python循环结构的方法中_超星尔雅初级英语口语(持续更新中)选修课答案...
套期具有"对冲""互抵"的关系 答:正确 差异化战略核心是企业在市场营销.研究和开发.产品技术和工艺设计以及服务等方面具有强大的实力. 答:正确 以下构成Pyt ...
- python中常见的流程结构-Python分支结构(switch)操作简介
Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...
- python文本结构化处理_在Python中标记非结构化文本数据
python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...
- python函数结构_PYTHON 之结构体,全局变量,函数参数,lambda编程 等
PYTHON 之结构体,全局变量,函数参数,lambda编程 ,generator(yield)使用以及如何自己构建switch结构 *********************** pass pass ...
- Python Ctypes结构体指针处理(函数参数,函数返回)
参考网址: http://www.2cto.com/kf/201109/106444.html 本文演示了在python中调用C语言生成的动态库,返回结构体指针,并进行输出! test.c(动态库源代 ...
- 不属于python循环结构的是( )_Python语句print(type(['a','1',2,3]))的输出结果是哪一项?_学小易找答案...
[简答题]整数的二进制.八进制.十六进制都用什么格式表示?将十进制数转换为二进制.八进制.十六进制的函数是什么? [单选题]Python语言属于以下哪一种语言? [简答题]叙述pass语句的作用. [ ...
- Python选择结构注意事项
以百分制成绩转换为字母等级成绩为例,简单介绍一下Python选择结构需要注意的事项. 1.缩进必须要正确 在Python代码中,缩进是非常重要的.如果缩进不正确,会导致语法错误无法运行,也可能会导致逻 ...
- 以下构成python循环结构的方法中正确的是_python教程:python循环结构
PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台. PyQt5拥有双重协 ...
最新文章
- centos php 开启libgdgd_Linux下开启PHP GD库支持
- 产业AI实践中,如何有效提升图像识别精度、实现极小目标检测? | 百度AI公开课报名...
- error_reporting笔记
- 设计模式复习-简单工厂模式
- 清理系统盘遇到的问题
- ML之回归预测:利用13种机器学习算法对Boston(波士顿房价)数据集【13+1,506】进行回归预测(房价预测)+预测新数据得分
- require.js学习记录
- 动态的显示当前的时间---setInterval的用法
- C#调用matlab,matlab图形Figure嵌入Winform窗体
- matlab调用refprop完全说明,Matlab调用REFPROP完
- java 如何执行dig 命令_linux dig 命令使用方法
- 【java】java实现pdf根据内容定位插入图片
- 服务器突然断电文件系统损坏,电脑突然断电造成系统文件损坏该如何修复?(高级篇)...
- 计算机组成原理SRop,【9A文】计算机组成原理历年真题.docx
- 系统分析与设计复习---项目管理概述
- linux 显示器识别工具,Linux 显示器未正确识别 最佳分辨率 Ubuntu 10.10 X1
- 计算机软著发明,时健
- 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
- 非网页版微信机器人-Wechaty
- python的自省到底有什么用
热门文章
- 简述抽象和封装,对你学习Java有一些作用
- Android应用连接代理服务器状况监测解决
- unity, 荧光效果(bloom)
- 这就是计算机男用英语怎么说,科学网—Is a computer male or female? 计算机是男的还是女的? - 邱敦莲的博文...
- python type instance_Python type, types and isinstance()使用
- 算法导论吃透后的水平_初学算法,你应该这么玩
- 模板 字段_Anki学习之路(08)|什么是Anki模板类型?什么是字段?
- python 二维数组 长度_Python创建二维数组的正确姿势
- linux内核全局变量重定位,关于可重定位文件中全局变量的一个重定位疑惑,借各位牛刀一用^...
- linux 查redis状态_干货:用案例代码详解Redis中的事件驱动模型