mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
52 字
1 分钟
【课外拓展题】Python列表
2025-11-22

第1关:判断水仙花数#

x = int(input())
########## Begin ##########
L = [int(xi) for xi in str(x)]
result = 0
if x<100:
print('False')
else:
for i in L:
result += i**3
if result == x:
print('True')
else:
print('False')
########## End ##########

第2关:寻找自幂数#

n = int(input())
result = []
if n==1:
begin = 0
else:
begin = 10**(n-1)
end = 10**n
for i in range(begin,end):
L = [int(xi) for xi in str(i)]
sum = 0
for j in L:
sum += j**n
if sum == i:
result.append(i)
for i in result:
print(i)

第3关:绘制钟形曲线#

import matplotlib.pyplot as plt
########## Begin ##########
from math import *
import numpy as np
X=np.linspace(-3,3,21)
Y=[]
for x in X:
y = exp(-(x**2)/2) / sqrt(2*pi)
Y.append(y)
########## End ##########
#以下代码用于打印结果
for i in range(len(X)):
if round(X[i],2)==-0.0:
X[i]=0
print('%.2f\t%.2f' % (X[i],Y[i]))
#以下代码用于绘制图形
plt.plot(X,Y,'bo-')
plt.grid('on')
plt.axis([-3, 3, 0, 0.4])
plt.show()
plt.savefig( 'src/step6/student/pic.png' )
plt.close()

第4关:绘制大西洋中脊剖面轮廓#

import matplotlib.pyplot as plt
########## Begin ##########
from math import *
import numpy as np
X=[]
Y=[]
for x in range(-1200,1201,200):
X.append(x)
for x in X:
y = -(2.5+0.11*sqrt((10*abs(x)/50)))
Y.append(y)
########## End ##########
#以下代码用于打印结果
for i in range(len(X)):
print('%5s\t%.2f' % (int(X[i]),Y[i]))
#以下代码用于绘制图形
plt.plot(X,Y,'r-')
plt.grid('off')
plt.axis([-1200, 1200, -4.2, 0])
plt.show()
plt.savefig( 'src/step6/student/pic.png' )
plt.close()
#以下代码用于保存图片
plt.savefig( 'src/step7/student/pic.png' )
plt.close()

第5关:线性拟合#

import matplotlib.pyplot as plt
X = [0, 0.5, 1, 1.5, 2, 2.5, 3, 4, 4.5, 5]
Y = [0, 18, 20, 39.5, 60, 50, 68, 77, 100, 110]
########## Begin ##########
k,b,xk,yk,xk2,xkyk=0,0,0,0,0,0
n=len(X)
for x,y in zip(X,Y):
xk+=x
yk+=y
xk2+=x**2
xkyk+=x*y
k=(xk*yk-n*xkyk)/(xk**2-n*xk2)
b=(xk*xkyk-xk2*yk)/(xk**2-n*xk2)
X1=[0,5]
Y1=[b,k*5+b]
#画图
plt.plot(X,Y,'bo')
plt.plot(X1,Y1,'r-')
plt.show()
plt.savefig( 'src/step8/student/pic.png' )
########## End ##########
print('y = %.3fx + %.3f' % (k,b))
plt.savefig( 'src/step8/student/pic.png' )
plt.close()
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

【课外拓展题】Python列表
https://blog.sherry.qzz.io/posts/python/1119list/
作者
Sherry
发布于
2025-11-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录