一、要看的人
1.想踩我的(求你了,别踩了) (・Д・;)
2.正在学习代码的(最好认真看)
3.随便打发时间的(想看就看,不想看就不看那
种)
4.过路的(请点个赞) o( ̄▽ ̄)d
二、分析一下
建立num变量,将num赋值成1将这个数每次加一,使用找素数的方法把它从2除到它这个数本身,如果不是素数的数就向前走一步,如果是素数就右转90度,继续找。
再建立一个退出条件,设立画图窗口为800*800,再找到turtle现在的位置,如果turtle的x或y=窗口的x或y,退出循环。
三、开敲
首先,引入turtle和math中的sqrt包
import turtle as t
from math import sqrt
然后判断是否为素数
import turtle as t
from math import sqrt
# 判断是否为素数
def if_prime(num):
for i in range(2,round(sqrt(num))+1):
# 能整除,非素数
if num % i == 0:
return False
return True
接着设定窗口
t.setup(800,800)#根据自己的电脑调整此参数,太大会看不见
t.screensize(100,100,'black')
minxv=-50
minyv=-80
maxxy=t.window_width()+minxv
maxyv=t.window_height()+minyv
t.setworldcoordinates(minxv,minyv,maxxy,maxyv)
然后......干一些没有用的事:
t.speed(0)
t.Turtle().screen.delay(0)
t.pencolor('white')
t.pensize(1)
t.setheading(-90)
t.hideturtle()
num=0
t.pd()
run_flag= True
请关注一下上面那个run_flag,下面会用到。
然后进入一个选择性循环
while run_flag:
t.fd(1)
num+=1
xcor=round(t.xcor())
ycor=round(t.ycor())
if if_prime(num):遇到素数就右转90度
t.right(90)
keyIn=(xcor,ycor)
print('{0},-->{1}'.format(keyIn,num))
if xcor>maxxy or xcor < minxv or ycor>maxyv or ycor < minyv:
run_flag=False #碰到边缘就停止循环
好了,这次的代码分享就到这里,下期再见
源码链接:百度网盘地址 提取码: 5zn8