1 蒙特卡洛求圆周率PI
calpi-100.pngcalpi-1000.png
calpi-10000.png
已解决。需要在界面配置参数--trusted-host pypi.doubanio.com
import random
import numpy as npy
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse, Circle
def calpai(n=1000):
#n = 1000
r = 1.0
a, b = (0.0, 0.0)
x_neg, x_pos = a - r, a + r
y_neg, y_pos = b - r, b + r
count_circle = 0
x_circle = []
y_circle = []
x_all = []
y_all = []
for i in range(0, n):
x = random.uniform(x_neg, x_pos)
y = random.uniform(y_neg, y_pos)
x_all.append(x)
y_all.append(y)
if x*x + y*y <= 1.0:
count_circle += 1
x_circle.append(x)
y_circle.append(y)
pi = (count_circle / float(n)) * 4
fig, ax = plt.subplots()
plt.axis([-1, 1, -1, 1])
cir1 = Circle(xy=(0.0, 0.0), radius=1, alpha=0.5,color='g', fill=False)
ax.add_patch(cir1)
ax.scatter(x_all, y_all, color='black', marker='+')
#ax.scatter(x_circle, y_circle, color='red', marker='+')
#plt.scatter(x_all, y_all, color='black', marker='+')
plt.scatter(x_circle, y_circle, color='red', marker='+')
# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal') # 让横轴与纵轴相等,这样圆才是圆
my_title = "samples:"+str(n)+"__PI:"+str(pi)
plt.title(my_title)
my_file = my_title+".png"
plt.savefig("my_file.png") ## ing
plt.show()
return pi
def main():
print('this message is from main function~')
print(calpai(10000))
if __name__ == '__main__':
main()
附录 调试快捷键-转
image.pngF8:step over 单步
遇到断点后,程序停止运行,按F8单步运行。
F7:step into 进入
配合F8使用。单步调试F8时,如果某行调用其他模块的函数,在此行F7,可以进入函数内部,如果是F8则不会进入函数内容,直接单步到下一行。
Alt+shift+F7:step into mycode,
个人理解F8和F7的综合。1、没遇到函数,和F8一样;2、遇到函数会自动进入函数内部,和F8时按F7类似的
shift+F8:跳出
调试过程中,F7进入函数内后,shift+F8跳出函数,会回到进入前调用函数的代码。不是函数地方shift+F8跳出,怎么用没太明白,但最终会执行到结束。
F9:resume program
按翻译是重启程序 ,实际是 下个断点,当打多个断点是,F9会到下一个断点
alt+F9:run to cursor
没用过
常用:
F8,F9,其次Alt+shift+F7,或 F7,shift+F8
批量注释:Ctrl+/
pycharm总是安装不上,更改源仍然无效。只能在cmd命令中安装三方库。
pip install --index-url http://pypi.doubanio.com/simple/ matplotlib --trusted-host pypi.doubanio.com
网友评论