头歌Python 计算思维训练——循环与列表(三)

目录

第1关循环与列表 - 生成奇数列表

第2关计算原子能级

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


第1关:循环与列表 - 生成奇数列表

编程要求

请分别在右侧编辑器中的Odd_ForOdd_While两个函数中,使用forwhile两种循环结构,生成并返回一个包含奇数的**列表list**。

这两个函数都有一个参数n,返回的列表应该包括 1 到n内的所有奇数注意:如果n是偶数,那么生成的最大奇数是n-1

注意:评测系统会自动读取输入的数据,并将其传递给Odd_ForOdd_While两个函数,学生只需要关注这两个函数的实现即可。

def Odd_For(n):
    odds = []

    #使用for循环向odds列表中添加数据
    #   请在此添加实现代码   #
    # ********** Begin *********#
    for i in range (1,n+1):
        if(i % 2 != 0):
            odds.append(i)
    return odds
 


    # ********** End **********#
    return odds

def Odd_While(n):
    odds = []

    #使用while循环向odds列表中添加数据
    #   请在此添加实现代码   #
    # ********** Begin *********#
    i = 1
    while(i <= n):
        if(i % 2 != 0):
            odds.append(i)
        i += 1
    return odds


    # ********** End **********#
    return odds

 

第2关:计算原子能级

编程要求

右侧编辑器中有一个EnLevel函数,它有一个参数n,范围是 1 - 20 。

请在这个函数中实现基于上面电子能级公式的电子的n级能级计算并输出,保留 5 位小数

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

def EnLevel(n):
    #请在这里编写程序,完成本关任务
    #   请在此添加实现代码   #
    # ********** Begin *********#
    me=9.1094e-31
    e=1.6022e-19
    epsilon0=8.8542e-12
    h=6.6261e-34
    en = ((-1) * me * e ** 4) / (8 * epsilon0 ** 2 * h ** 2 * n ** 2)
    print("%.5e"%en)    
 


    # ********** End **********#

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

编程要求

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

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

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

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

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

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("--------------------------------------------------------------------------------")
    en = (me * e ** 4) / (8 * epsilon0 ** 2 * h ** 2)
    for i in range(1, maxn + 1):
        print("%d | "%i,end='')
        for j in range(1,6):
            En = en * (1 / i ** 2 - 1 / j ** 2)
            if En == 0:
                print("-%.6E\t"%En,end='')
            else:
                print("%.6E\t"%En,end='')
        if j == 5:
            print("\n",end='')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值