今天我很无聊,所以开始写了一些几分钟的代码来消磨时间。不过我想知道 x 的 x 次方和 x 本身之间的函数关系,所以我写了以下代码。
x = np.arange(1,21,1)
y = []
for i in x:
y.append(len(str(i**i)))
plt.plot(x,y,'b')
看起来非常简单,绝对不可能出错的,是吗?事实上没有错误,但输出的图像却像这样。
这太奇怪了,所以我写了以下代码进行验证,print(len(str(20**20)))
,但这是正常的,并给出了27
的结果。
按理说,这个函数的曲线应该一路上升,但在16
和20
处存在严重问题。 这是Python的问题吗?为什么会发生这种情况?
np.arange()
而不是list(range(1, 21))
?如果使用普通列表,它是否有效? - Barmarprint(y)
,你会看到什么? - Barmar