1.利用pycharm在windows下出现闪退
2.缺少必要的事件触发,偶然间看到一个博主是这样解释闪退情况的:
import pygame from pygame.locals import * pygame.init() surface = pygame.display.set_mode((500, 500)) while True: # 窗口无响应是因为没有任何注册在窗口上的事件 # 为当前窗口增加事件 # 利用pygame注册事件,其返回值是一个列表, # 存放当前注册时获取的所有事件 for event in pygame.event.get(): if event.type == QUIT: exit()
2.turtle 入门
那我就先接着往下学,就在此刻万能的课本告诉我是缺少了一行代码:
# 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()
这次我终于顺利见到我的成果了,老母亲露出了幸福的微笑:
import turtle # 绘制一个文本字符串 turtle.write('welcome to python~') # 将箭头向前移动100像素,向箭头所指的方向绘制一条直线 turtle.forward(100) # 将箭头向右转90度 turtle.right(90) # 将turtle的箭头变成红色 turtle.color('red') # 将箭头向前移动50像素,向箭头所指的方向绘制一条直线 turtle.forward(50) # 显示当前turtle的位置和方向 turtle.showturtle() # 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()

那我们绘制一个长方形:
import turtle # 绘制一个文本字符串 # n = 2 turtle.write('welcome to python~') # 将turtle的箭头变成红色 turtle.color('red') # 将箭头向前移动100像素,向箭头所指的方向绘制一条直线 turtle.forward(100) # 将箭头向右转90度 turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) # 显示当前turtle的位置和方向 turtle.showturtle() # 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()

发现规律没有,我们利用循环实现是这样的:
import turtle # 绘制一个文本字符串 n = 3 turtle.write('welcome to python~') # 将turtle的箭头变成红色 turtle.color('red') while n >= 0: # 将箭头向前移动100像素,向箭头所指的方向绘制一条直线 turtle.forward(100) # 将箭头向右转90度 turtle.right(90) n = n - 1 # 显示当前turtle的位置和方向 turtle.showturtle() # 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()
3.充分理解penup()和pendown()
首先我们先来总结几个常用的函数:
# 设置抬起笔或者放下笔,借此来控制移动笔时是否绘制一条线 turtle.penup() turtle.pendown() # turtle在程序启动的时候,箭头在(0,0)位置,利用goto(x,y)可以将箭头移动到这个点上 turtle.goto(50, -50) # 绘制一个半径为50的红色的圆 turtle.color('red') turtle.circle(50) # 显示当前turtle的位置和方向 turtle.showturtle() # 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()
除此之外还有很多其他的库,这里可以参照《turtle库总结》
turtle.penup() turtle.goto(50, -50) turtle.pendown()
只有把画笔放下了,我们绘制圆圈的功能才能继续,否则笔一直处于被占用的状态。(其实单纯绘制圆圈并不需要这样,直接利用circle()函数就可以,这里只是为了便于理解penup()和pendown())
import turtle # 设置抬起笔或者放下笔,借此来控制移动笔时是否绘制一条线 turtle.penup() # turtle在程序启动的时候,箭头在(0,0)位置,利用goto(x,y)可以将箭头移动到这个点上 turtle.goto(50, -50) turtle.pendown() # 绘制一个半径为50的红色的圆 turtle.color('red') turtle.circle(50) # 显示当前turtle的位置和方向 turtle.showturtle() # 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()
4.思考
看完了上面的知识点能告诉我下面这两段代码的不同吗?
turtle.color('red') turtle.circle(50)
turtle.circle(50) turtle.color('red')
5.利用turtle绘制五环
import turtle # 绘制圆心在(-50,50),半径为50,红色圆 turtle.penup() turtle.goto(-50, 50) turtle.pendown() turtle.color('yellow') turtle.circle(50) # 绘制圆心在(0,50),半径为50,红色圆 turtle.penup() turtle.goto(0, 50) turtle.pendown() turtle.color('red') turtle.circle(50) # 绘制圆心在(-100,50),半径为50,橙色圆 turtle.penup() turtle.goto(-100, 50) turtle.pendown() turtle.color('orange') turtle.circle(50) # 绘制圆心在(50,50),半径为50,绿色圆 turtle.penup() turtle.goto(50, 50) turtle.pendown() turtle.color('green') turtle.circle(50) # 绘制圆心在(100,50),半径为50,蓝色圆 turtle.penup() turtle.goto(100, 50) turtle.pendown() turtle.color('blue') turtle.circle(50) # 显示当前turtle的位置和方向 turtle.showturtle() # 它可以导致程序暂停直到用户关闭python turtle 图形化窗它的目的是留给用户时间来查看图形,没有这一行,图形窗口会在程序完成时立即结束。 turtle.done()
无论移动的点从天南跑到地北,我们turtle都可以很好地完成绘制任务,运行上述代码你就能很好的感受到这一点~

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/174220.html原文链接:https://javaforall.net
