化学元素分子量、氧化物系数计算python类
在网上找到的分子量计算类,做了少量修改,有原子量、分子量、氧化物系数的计算。
import re
wt_dict={ #该原子量数据从CRC手册第95版提取。"H": 1.008,"He": 4.002602,"Li": 6.94,"Be": 9.0121831,"B": 10.81,"C": 12.011,"N": 14.007,"O": 15.999,"F": 18.998403163,"Ne": 20.1797,"Na": 22.98976928,"Mg": 24.305,"Al": 26.9815385,"Si": 28.085,"P": 30.973761998,"S": 32.06,"Cl": 35.45,"Ar": 39.948,"K": 39.0983,"Ca": 40.078,"Sc": 44.955908,"Ti": 47.867,"V": 50.9415,"Cr": 51.9961,"Mn": 54.938044,"Fe": 55.845,"Co": 58.933194,"Ni": 58.6934,"Cu": 63.546,"Zn": 65.38,"Ga": 69.723,"Ge": 72.63,"As": 74.921595,"Se": 78.971,"Br": 79.904,"Kr": 83.798,"Rb": 85.4678,"Sr": 87.62,"Y": 88.90584,"Zr": 91.224,"Nb": 92.90637,"Mo": 95.95,"Ru": 101.07,"Rh": 102.9055,"Pd": 106.42,"Ag": 107.8682,"Cd": 112.414,"In": 114.818,"Sn": 118.71,"Sb": 121.76,"Te": 127.6,"I": 126.90447,"Xe": 131.293,"Cs": 132.90545196,"Ba": 137.327,"La": 138.90547,"Ce": 140.116,"Pr": 140.90766,"Nd": 144.242,"Sm": 150.36,"Eu": 151.964,"Gd": 157.25,"Tb": 158.92535,"Dy": 162.5,"Ho": 164.93033,"Er": 167.259,"Tm": 168.93422,"Yb": 173.054,"Lu": 174.9668,"Hf": 178.49,"Ta": 180.94788,"W": 183.84,"Re": 186.207,"Os": 190.23,"Ir": 192.217,"Pt": 195.084,"Au": 196.966569,"Hg": 200.592,"Tl": 204.38,"Pb": 207.2,"Bi": 208.9804,"Th": 232.0377,"Pa": 231.03588,"U": 238.02891,"Tc": 0, #有些放射性元素的原子量没有提供,以0表示。"Pm": 0,"Po": 0,"At": 0,"Rn": 0,"Fr": 0,"Ra": 0,"Ac": 0, "Np": 0,"Pu": 0,"Am": 0,"Cm": 0,"Bk": 0,"Cf": 0,"Es": 0,"Fm": 0,"Md": 0,"No": 0,"Lr": 0,"Rf": 0,"Db": 0,"Sg": 0,"Bh": 0,"Hs": 0,"Mt": 0,"Ds": 0,"Rg": 0,"Cn": 0,"Fl": 0,"Lv": 0}
class Mole():@staticmethod#是否是化学元素def isElement( ele: str) -> bool:if ele in wt_dict.keys():return Trueelse:return False@staticmethod#原子量def AtomicWeight( element: str) -> float:"""根据元素名称返回其原子量,区分大小写的"""if len(element)>2: # 元素名称长度不应超过2个字符.return Nonereturn wt_dict.get(element, 0.000) @staticmethod#分子量def MolWt(formula:str) -> float:regStr="([A-Z]{1}[a-z]{0,1})([0-9]{0,3})" #解析化学式的正则表达式 MatchList=re.findall(regStr, formula)cntMatchList=len(MatchList)i=0mW=0.000while i < cntMatchList:eleName=MatchList[i][0]eleCount= int(MatchList[i][1]) if len(MatchList[i][1])>0 else 1aw=Mole.AtomicWeight(eleName)if (aw==0): #防止错误表示不能及时识别出来。return 0mW += aw*eleCounti=i+1return mW@staticmethod #氧化物到单质的换算系数def Xishu(formula:str) -> float:regStr="([A-Z]{1}[a-z]{0,1})([0-9]{0,3})" #解析化学式的正则表达式 MatchList=re.findall(regStr, formula)cntMatchList=len(MatchList)i=0mW=0.000r=[]while i < cntMatchList:eleName=MatchList[i][0]eleCount= int(MatchList[i][1]) if len(MatchList[i][1])>0 else 1r.append((eleName,eleCount))aw=Mole.AtomicWeight(eleName)if aw==0: #防止错误表示不能及时识别出来。return 0# mW += aw*eleCounti=i+1total=0ele_w=1for one in r:(eleName,eleCount)=onewt=Mole.AtomicWeight(eleName)*eleCountif eleName!="O":ele_w=wttotal=total+wtreturn total/ele_w@staticmethod def letters():#用于元素符号的字母r=[]for k in wt_dict.keys():print(k)for one in k:if one.upper() in r:passelse:r.append(one.upper())return r
if __name__=="__main__":#find which letter not use in elementr=Mole.letters()print(r,len(r))all=[]start=ord("A")stop=ord("Z")a=startwhile a<=stop:all.append(chr(a))a+=1for one in all:if one in r:passelse:print(one)#answer is Q
相关文章:
化学元素分子量、氧化物系数计算python类
在网上找到的分子量计算类,做了少量修改,有原子量、分子量、氧化物系数的计算。 import re wt_dict{ #该原子量数据从CRC手册第95版提取。"H": 1.008,"He": 4.002602,"Li": 6.94,"Be": 9.0121831,"B": 10.…...
torch.utils.data.DataLoader参数介绍
torch.utils.data.DataLoader 是 PyTorch 用于加载数据的重要工具,特别是在深度学习模型训练中。它可以高效地处理大规模数据集,并支持多线程数据加载。以下是 DataLoader 的关键参数及其功能: 主要参数 dataset: 要加载的数据集,可以是 PyTorch 自带的 torch.utils.data.…...
echarts 入门
工作中第一次碰到echarts,当时有大哥。二进宫没办法,只能搞定它。 感觉生活就是这样,不能解决的问题总是会反复出现。通过看视频、查资料,完成了工作要求。写一篇Hello World,进行备查。 基本使用 快速上手 <!DO…...
WPF实现类似网易云音乐的菜单切换
这里是借助三方UI框架实现了,感兴趣的小伙伴可以看一下。 深色模式: 浅色模式: 这里主要使用了以下三个包: MahApps.Metro:UI库,提供菜单导航和其它控件 实现步骤:1、使用B…...
OpenCV人脸检测与识别:构建智能识别系统
在当今科技日新月异的时代,人脸识别技术以其独特的便利性和安全性,在各个领域都展现出了巨大的应用潜力。从智能手机的面部解锁,到机场的自动安检,再到商场的顾客行为分析,人脸识别技术无处不在。本文将深入探讨如何使…...
H5 Canvas 举牌小人
之前看到这种的举牌小人的图片觉得很有意思,最近有时间所以就尝试写写看。 在线链接 https://linyisonger.github.io/H5.Examples/?name./080.Canvas%20%E4%B8%BE%E7%89%8C%E5%B0%8F%E4%BA%BA.html 生成效果 实现代码 <!DOCTYPE html> <html lang"…...
rom定制系列------小米6x_澎湃os1.0.28安卓13定制固件修改 刷写过程与界面预览
💝💝💝 在接待很多定制化系统过程中。小米6x机型为很多工作室客户使用。但官方低版本固件无法适应新应用的使用。有些第三方固件却可以完美解决。此固件是客户分享的卡刷固件。需要修改为可以批量刷写的线刷固件。去除一些内置应用。需要自带…...
电脑硬件性能:HDD + SSD + CPU + GPU
文章目录 任务管理器:性能参数详解一、电脑的硬件组成二、机械硬盘和固态硬盘2.1、详细介绍:HDD SSD2.2、读写性能2.2.1、(HDD)读写性能的影响因素:寻道时间 旋转延迟 数据传输时间2.2.2、(SSDÿ…...
通过粒子系统customData传值给材质球
粒子特效使用的材质球,如果通过动画控制shader的某个参数,例如溶解阈值,所有的粒子都会按照相同的数值变化,如果需要每个粒子在自己的生命周期内按照曲线变化,则可以通过customData实现。 1.ParticleSystem中勾选Cust…...
常用分布的数学期望、方差、特征函数
文章目录 相关教程相关文献常用分布的数学期望&方差&特征函数定义事件域概率条件概率随机变量分布函数连续随机变量的概率密度函数数学期望离散随机变量连续随机变量 方差与标准差最大似然估计特征函数 不等式Chebyshev(切比雪夫)不等式 作者&am…...
ssh-配置
生成 SSH 密钥是一项重要的安全措施,用于在客户端和服务器之间建立加密连接。以下是在 Windows 和 Linux 系统上生成 SSH 密钥的详细步骤。 一、在 Linux 上生成 SSH 密钥 Linux 通常预装了 ssh-keygen 工具,可以通过以下步骤生成 SSH 密钥:…...
Python 在 JMeter 中如何使用?
要在JMeter中使用Python,需要使用JSR223 Sampler元素来执行Python脚本。使用JSR223 Sampler执行Python脚本时,需要确保已在JMeter中配置了Python解释器,并设置了正确的环境路径。 1、确保JMeter已安装Python解释器,并将解释器的路…...
贪心day1
文章目录 前言雪糕的最大数量重新分装苹果装满石头的背包的最大数量K 次取反后最大化的数组和不同整数的最少数目 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫文章题目大多来自于 leetcode,当然也可能来自洛…...
Redis 完整指南:命令与原理详解
目录 1. Redis 概述什么是 RedisRedis 应用场景 2. 安装与启动Redis 安装步骤源代码安装使用包管理器安装(以 Ubuntu 为例) 编译与启动命令编客户端连接 3. Redis 存储结构KV 存储结构数据结构类型String(字符串)List(…...
【2024软考高级架构师】论文篇——3、论Web系统的测试技术及其应用
【摘要】 本人于2023年8月参与了某地级市的市级机关电子政务信息系统的建设工作,该项目是该市机关的电子政务网建设计划的一部分,笔者在该项目中担任项目经理和系统分析师一职,主要负责项目的日常全面管理和质量保证与质量控制工作。该项目是基于WEB系统的,由于WEB系统具有…...
迪杰斯特拉算法的理解
图片转载自:最短路径算法-迪杰斯特拉(Dijkstra)算法 - 程序小哥爱读书的文章 - 知乎 https://zhuanlan.zhihu.com/p/346558578 迪杰斯特拉,一个广度优先算法,采用了贪心策略。 第一步,选取顶点D,更新和D相连的节点C&a…...
华为OD机试 - 文本统计分析(Python/JS/C/C++ 2024 E卷 200分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…...
计算机挑战赛9
Excel表列名称由字母A~Z组成,列字母的规律如下: A、B、C.、AA、AB....AZ、BA、B...ZZZZY、ZZZZ...输入: 输入包含两个列名称字符串,长度均小于等于5。 输出: 输出两个列名称之间共有多少列 样例输入: AA AZ 样例输出: 24 代码: C&…...
C++学习路线(十六)
void类型指针 void -> 空类型 void* -> 空类型指针,只存储地址的值,丢失类型,无法访问,要访问里面的值 我们必须对指针进行正确的类型转换,然后再间接引用指针 所有其它类型的指针都可以隐式自动转换成 void 类型…...
2024年最受欢迎的AI工具与实际应用:AI技术对未来生活的深远影响
2024年最受欢迎的AI工具与实际应用:AI技术对未来生活的深远影响 随着2024年的到来,人工智能(AI)技术已经深入渗透到我们生活的方方面面。从日常工作到科学研究,AI工具的应用变得越来越广泛。无论是生成式AI工具&#…...
实战指南:构建高性能离线语音识别系统的完整方案
实战指南:构建高性能离线语音识别系统的完整方案 【免费下载链接】whisper-base.en 项目地址: https://ai.gitcode.com/hf_mirrors/openai/whisper-base.en 在数据隐私日益受到重视的今天,本地化语音识别技术为处理敏感语音内容提供了安全可靠的…...
探索数字微流控:OpenDrop开源平台完全实践
探索数字微流控:OpenDrop开源平台完全实践 【免费下载链接】OpenDrop Open Source Digital Microfluidics Bio Lab 项目地址: https://gitcode.com/gh_mirrors/ope/OpenDrop OpenDrop作为一款基于电润湿技术的开源数字微流控平台,致力于为开源实验…...
如何用OpenRocket实现专业火箭仿真?从设计到发射的全流程指南
如何用OpenRocket实现专业火箭仿真?从设计到发射的全流程指南 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket 在航空航天工程领域,…...
Qt 串口编程实战:keySight 34401A 万用表数据采集与存储
1. 项目背景与硬件准备 keySight 34401A 数字万用表是实验室常见的六位半高精度测量设备,支持GPIB和RS-232两种通信接口。在实际工业测量场景中,RS-232串口连接因其布线简单、成本低廉的特点,成为许多开发者的首选方案。我最近接手的一个电池…...
Go HTTP Server 性能分析与优化
Go HTTP Server 性能分析与优化 在当今高并发的互联网应用中,HTTP Server的性能直接决定了用户体验和系统稳定性。Go语言凭借其轻量级协程和高效的网络库,成为构建高性能HTTP服务的首选之一。即使使用Go,开发者仍需深入分析性能瓶颈并进行针…...
CogVideoX-2b CSDN专用版:5分钟部署你的本地AI视频导演
CogVideoX-2b CSDN专用版:5分钟部署你的本地AI视频导演 1. 从想法到画面,只差一个启动按钮 想象一下这样的场景:你脑子里闪过一个绝妙的视频创意——也许是“一只戴着宇航员头盔的柴犬在月球表面蹦跳”,也许是“赛博朋克都市的雨…...
MOOTDX:Python通达信数据接口解决方案
MOOTDX:Python通达信数据接口解决方案 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资领域,数据获取与处理始终是从业者面临的核心挑战。个人投资者常常困于复杂…...
RWKV7-1.5B-G1A快速原型:使用VMware虚拟机搭建隔离的模型测试环境
RWKV7-1.5B-G1A快速原型:使用VMware虚拟机搭建隔离的模型测试环境 1. 为什么需要虚拟机测试环境 在测试新的大语言模型时,最头疼的问题就是环境配置冲突。你可能遇到过这种情况:好不容易装好CUDA驱动,结果发现和现有项目的PyTor…...
开源大模型部署新范式:像素幻梦Streamlit前端+diffusers后端架构解析
开源大模型部署新范式:像素幻梦Streamlit前端diffusers后端架构解析 1. 项目概览 像素幻梦(Pixel Dream Workshop)是一款基于FLUX.1-dev扩散模型的像素艺术生成工具,它重新定义了AI艺术创作的用户体验。与传统AI绘图工具不同,它采用了独特的…...
COMSOL能源开采仿真:基质中瓦斯扩散、裂隙中瓦斯渗流,分析不同工况条件下渗透率演化、有效抽...
COMSOL能源开采仿真:基质中瓦斯扩散、裂隙中瓦斯渗流,分析不同工况条件下渗透率演化、有效抽采半径、抽采产量。 使用模块:PDE(基质瓦斯扩散),达西定律/PDE(裂隙瓦斯渗流)࿰…...
