IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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('未输入正确的参数!')

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:25:22  更:2021-07-13 17:27:30 
 
开发: 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年5日历 -2024/5/4 23:08:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码