breakpoint()是Python的内置函数,看名字就知道是设置断点用来调试的。breakpoint()可以在程序执行过程中插入一个断点,让程序停在该处等待调试器的进一步命令。
简单的举个例子,原来是连续输出数字1、2、3,现在中间插入breakpoint(),那就是输出print(2)之后,系统会暂停一下,直到收到“continue”命令之后,才继续执行:
print(1)
print(2)
breakpoint()
print(3)
下面举一个稍微复杂和实用一点的例子。以前面的一篇文章简单学Python——用蒙特卡罗法来计算圆周率为例,将用到的代码中插入breakpoint()。因为硬件设备能力有限,不可能一直生成越来越多的点,所以,在生成10亿个点之后,就用breakpoint()提示一下,如果确认自己的硬件能继续运行程序,就输入“continue”来进行下一步,同时做好运算量过大机器不响应的准备,代码如下:
import numpy as np
# 运用np.random随机生成dot个点
for i in range(0,12):
#以下三行为设置断点:
if i >=8:
print("i值过大,您的设备可能不支持后续操作,请您认真检查!")
breakpoint()
dot=10**i#dot的值为1,10,100,1000...
#下面是这些点的随机的坐标
x=np.random.rand(dot)
y=np.random.rand(dot)
# 转化为坐标格式
X=np.c_[x-0.5,y-0.5]
#计算出与原点距离<=0.5的点(即x平方加y平方小于0.25)
incircle=X[X[:,0]**2+X[:,1]**2<=0.25]
#求出相似π(4*圆内点数/总点数)
PI=4*incircle.shape[0]/X.shape[0]
print(f'点的数量为{dot},推算出的圆周率PI为{PI}')
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/75002
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!