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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def Odd_For(n):
odds = []

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


def Odd_While(n):
odds = []

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

第2关:计算原子能级

1
2
3
4
5
6
7
8
9
def EnLevel(n):
me = 9.1094e-31
e = 1.6022e-19
epsilon0 = 8.8542e-12
h = 6.6261e-34

energy = -(me * e**4) / (8 * (epsilon0**2) * h**2) / (n**2)

print(f"{energy:.5e}")

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def EnList(maxn):
print(" |能级1\t\t能级2\t\t能级3\t\t能级4\t\t能级5")
print(
"--------------------------------------------------------------------------------"
)

me = 9.1094e-31
e = 1.6022e-19
epsilon0 = 8.8542e-12
h = 6.6261e-34

for i in range(1, maxn + 1):
row = f"{i} |"
for j in range(1, 6):
if j == 1:
row += " "
else:
row += "\t"

if i == j:
row += "-0.000000E+00"
else:
deltaE = (
-(me * e**4)
/ (8 * (epsilon0**2) * h**2)
* ((i**2 - j**2) / (i**2 * j**2))
)
row += f"{deltaE:<.6E}"
row += "\t"
print(row)