| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python小白的学习日志:分析化学中pH值计算小程序 -> 正文阅读 |
|
[Python知识库]Python小白的学习日志:分析化学中pH值计算小程序 |
我是一个有点喜欢编程的药学人。 初学python,为了练练手,也为了简化一些日常的计算,把分析化学中常用的pH值的计算写了一个小的python程序。程序是非常简陋的,以后有时间再慢慢优化,代码也不够简洁。 上代码: import?math? ? ? ? ? ? ? ? ? ? ? #导入math模块,用于计算 def?captureval(inputstr):? ?#函数的作用是为了将输入的string转化为list,list中的元素转化为浮点数 ????alist=inputstr.split('/') ????blist=[] ????for?a?in?alist: ????????val=float(a) ????????blist.append(val) ????return?blist boolflag=True? ? ? ? ? ? ? ? ? ?#定义一个布尔类型的变量,用于后续退出循环的判据 while?boolflag==True:? ? ? #这一层循环的目的是为了能在计算完成之后再进入页面,可以计算多次 ????phsolution=input('计算[1.强酸(碱);2.一元或多元弱酸(碱);3.两性物质;4.缓冲溶液;5.ka或者kb;6.pka相关;7.退出]:') ????if?phsolution=='1': ????????ka=input('请输入浓度:') ????????kalist=captureval(ka) ????????ph=math.log10(kalist[0])*(-1) ????????print('pH=%.3f'%ph) ????elif?phsolution=='2': ????????cka=input('请输入浓度和Ka值(以醋酸为例:0.1/1.8/-5):') ????????cklist=captureval(cka) ????????hconc=math.sqrt(cklist[0]*cklist[1]*math.pow(10,cklist[2])) ????????print('[H+]=%.3e'%hconc) ????????ph=math.log10(hconc)*(-1) ????????print('pH=%.3f'%ph) ????elif?phsolution=='3': ????????ka1ka2=input('请输入ka1,ka2:') ????????ka12list=captureval(ka1ka2) ????????hconc=math.sqrt(ka12list[0]*math.pow(10,ka12list[1])*ka12list[2]*math.pow(10,ka12list[3])) ????????print('[H+]=%.3e'%hconc) ????????ph=math.log10(hconc)*(-1) ????????print('pH=%.3f'%ph) ????elif?phsolution=='4': ????????buffer=input('请输入ka,ca,cb:') ????????bufferlist=captureval(buffer) ????????hconc=bufferlist[0]*math.pow(10,bufferlist[1])*bufferlist[2]/bufferlist[3] ????????print('[H+]=%.3e'%hconc) ????????ph=math.log10(hconc)*(-1) ????????print('pH=%.3f'%ph) ????elif?phsolution=='5': ????????kaorkb=input('请输入ka或者kb的值(eg:a/1.8/-5):') ????????kaorkblist=kaorkb.split('/') ????????klist1=float(kaorkblist[1]) ????????klist2=float(kaorkblist[2]) ????????if?kaorkblist[0]=='a': ????????????kb1=math.pow(10,-14)/klist1/math.pow(10,klist2) ????????????ph1=math.log10(klist1*math.pow(10,klist2))*(-1) ????????????print('kb=%.3e,pka=%.3f'%(kb1,ph1)) ????????elif?kaorkblist[0]=='b': ????????????ka1=math.pow(10,-14)/klist1/math.pow(10,klist2) ????????????ph1=math.log10(ka1)*(-1) ????????????print('ka=%.3e,pka=%.3f'%(ka1,ph1)) ????????else: ????????????print('参数错误!') ????elif?phsolution=='6': ????????pkastr=input('请输入pka值:') ????????pkaval=captureval(pkastr) ????????pkavalsuper=pkaval[0]*(-1) ????????kapka=math.pow(10,pkavalsuper) ????????kbpka=math.pow(10,-14)/kapka ????????print('ka=%.3e,kb=%.3e'%(kapka,kbpka)) ????elif?phsolution=='7': ????????boolflag=False ????????print('已退出程序!') ????else: ????????print('未输入正确的参数!') |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 1:22:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |