#Python入门(六)##太原理工大学机器人团队20天学习打卡day6

Bliss ·
更新时间:2024-11-13
· 925 次阅读

今日主讲蒙特卡罗方法求圆周率π绘制7段数码管
蒙特卡罗
蒙特卡罗方法就是撒点(也就是随机数),撒出无数点(尽量多的点),计算满足条件的点个数占总个数的比例,广泛应用于各类概率性问题,今天我们就用这个思想求π
如下图所示,对正方形区域进行撒点,用.random()得出点的x,y,然后用距离公式判断点是否在圆上
在这里插入图片描述在这里插入图片描述

#π.py from random import random from time import perf_counter DARTS = 1000*1000#dart中文意思是飞镖 hits = 0.0 start = perf_counter() for i in range(1, DARTS+1): x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1 pi = 4 * (hits/DARTS)#乘4是因为hits/DARTS求的是第一象限1/4圆的面积 print("圆周率值是: {}".format(pi)) print("运行时间是: {:.10f}s".format(perf_counter() - start))

结果具有存在随机性,偶然性,且因为撒点个数不多,有点不太精准
在这里插入图片描述
绘制七段数码管
在这里插入图片描述
难点:

有些线不画 如何写出依次写出年月日 #SevenDigitsDrawV2.py import turtle, time def drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw):#绘制单段数码管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90) def drawDigit(d): #根据数字绘制七段数码管 drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) #绘制2,3,4,5,6,8,9时第一笔是画的,以下代码考虑之后的六笔 画or不画 drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): turtle.pencolor("red") for i in date: if i == '-': turtle.write('年',font=("Arial", 18, "normal")) turtle.pencolor("green") turtle.fd(40) elif i == '=': turtle.write('月',font=("Arial", 18, "normal")) turtle.pencolor("blue") turtle.fd(40) elif i == '+': turtle.write('日',font=("Arial", 18, "normal")) #用font()确定字体系列,大小,样式normal(正常),italic(斜体) #用-=+来判断写年月日 else: drawDigit(eval(i)) def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-350) turtle.pensize(5) # drawDate('2018-10=10+') drawDate(time.strftime('%Y-%m=%d+',time.gmtime())) #按一定格式读出计算机中此时的时间,入门五讲过time库 turtle.hideturtle() turtle.done() main()

这段代码运用了time库和turtle库,前面都有讲过哦
在这里插入图片描述今天的内容是不是有趣点了,当然也有点难了,好好理解吧!
88,明天见!!!


作者:蓝天呀



Python入门 学习 大学 太原理工 机器人 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号