鱼C论坛

 找回密码
 立即注册
查看: 3865|回复: 0

[作品展示] 利用Python求化学式中元素质量分数或相对质量

[复制链接]
发表于 2020-12-20 17:29:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Minecraft程序猿 于 2020-12-23 12:00 编辑

最近化学科目经常计算化学式中元素质量分数,相对质量,元素质量之比等,几乎全是小数,手算算到要吐,所以用Python写了一个求解的程序
p.s.最初是手写到纸上的,后来转到了主机上
代码修改后未经测试,不一定稳定运行不报错,应该是正常的
  1. from os import system

  2. system("title 质量分数和元素质量求解 && color a")
  3. print("--------质量分数和元素质量求解--------")
  4. key = input("输入关键元素相对质量:")
  5. num = input("输入关键元素数量:")

  6. try:
  7.     key = int(key)
  8.     num = int(num)
  9. except ValueError:
  10.     print("输入有误")
  11. except:
  12.     print("出现未知错误")
  13. else:
  14.     a = input("是否启用质量计算(1/0):")
  15.     if a == '1':
  16.         t = input("输入物质总量:")
  17.         b = input("输入单位:")
  18.         try:
  19.             t = int(t)
  20.         except ValueError:
  21.             print("输入有误")
  22.         except:
  23.             print("出现未知错误")
  24.         else:
  25.             pass
  26.     else:
  27.         t = 1
  28.         b = ''

  29.     def functionx(*others, keyx):
  30.         a = 0
  31.         for each in others:
  32.             a += each
  33.         a += keyx
  34.         b = (t * keyx) / a
  35.         return b

  36.     listx = []
  37.     listin = '0'

  38.     while listin != "":
  39.         listin = input("输入非关键元素相对质量:")
  40.         listnum = input("该元素在化合物中的原子数目:")
  41.         try:
  42.             listin = int(listin)
  43.             listnum = int(listnum)
  44.         except:
  45.             if listin == "":
  46.                 listin = 0
  47.                 listnum = 0
  48.                 break
  49.             else:
  50.                 print("输入有误")
  51.         else:
  52.             listx.append(listin * listnum)
  53.     print("计算结果:", functionx(*list, keyx=key*num), b, "\n结果仅供参考")
  54.     system("pause")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-30 04:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表