educoder:第3关:嵌套循环 - 跃迁能量表

任务描述

本关任务:编写一个能打印氢原子电子跃迁释放的能量的表格的小程序。

相关知识

氢原子电子跃迁

电子从一个能级跃迁到另外一个能级时会释放出相应的能力,具体的,从能级ni​跃迁到能级nf​所释放的能量为:

ΔEn​=−\df8ε02​h2me​e4​⋅(\dfni2​1​−\dfnf2​1​)

其中: me​=9.1094×10−31kg是电子质量; e=1.6022×10−19C是基本电荷; ε0​=8.8542×10−12C2s2kg−1m−3是真空介电常数; h=6.6261×10−34Js是普朗克常量。

循环与列表

本关实训涉及到的循环与列表核心知识点请参考实训《Python计算思维训练 - 循环与列表(一)》的相关内容和授课视频。

编程要求

请在右侧编辑器的EnList函数中,打印出电子跃迁到某个能级时的释放的能量的表格。

这个函数有一个参数maxn,代表要输出的行数,范围为 1 - 20 。

表格总共 5 列,从左至右依次代表电子的起始能级 1 - 5 。表格的每一行代表不同起始能级的电子跃迁到此能级所释放的能量。表格从能级 1 开始。

注意:需要打印表头,以及控制表格格式,具体要求请见测试说明

输入数据由评测系统负责读取并传递给EnList函数,学生只需要关注这个函数的实现。

测试说明

测试代码会按照如下方式调用这两个函数:

 
  1. maxn = int(input())
  2. EnList(maxn)

本关测试样例如下。

测试输入: 3 预期输出:

 
  1. |能级1 能级2 能级3 能级4 能级5
  2. --------------------------------------------------------------------------------
  3. 1 | -0.000000E+00 1.634983E-18 1.937758E-18 2.043729E-18 2.092779E-18
  4. 2 | -1.634983E-18 -0.000000E+00 3.027747E-19 4.087458E-19 4.577953E-19
  5. 3 | -1.937758E-18 -3.027747E-19 -0.000000E+00 1.059711E-19 1.550206E-19

注意

  • 表头的文字之间的空白是两个制表符\t

  • 表内每一行的数据之间的空白部分是一个制表符\t

  • 数据使用指数格式输出,即{:E}

由于网页渲染的原因,上面的结果在格式上与真实结果有差异,可以参考测试集 1 的预期输出


开始你的任务吧,祝你成功!

def EnList(maxn):
    # 请在这里编写程序,打印跃迁能量表
    me = 9.1094e-31
    e = 1.6022e-19
    epsilon0 = 8.8542e-12
    h = 6.6261e-34
    print("  |能级1\t\t能级2\t\t能级3\t\t能级4\t\t能级5")
    print("--------------------------------------------------------------------------------")
    list_en = []
    list_i = [0, 0, 0, 0, 0]
    for i in range(1, 6):
        list_en.append(-(me * e ** 4) / (8 * (epsilon0 ** 2) * h ** 2) * 1 / (i * i))
    for i in range(6, maxn + 1):
        list_en.append(-(me * e ** 4) / (8 * (epsilon0 ** 2) * h ** 2) * 1 / (i * i))
    for i in range(1, maxn + 1):
        for j in range(1, 6):
            list_i[j - 1] = list_en[j - 1] - list_en[i - 1]
            if list_i[j - 1] == 0.000000E+00:
                list_i[j - 1] = -0.000000E+00
        print('{:} | {:.6E}\t{:.6E}\t{:.6E}\t{:.6E}\t{:.6E}\t'.format(i, list_i[0], list_i[1], list_i[2], list_i[3],
                                                                      list_i[4]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值