1.利用pycharm在windows下出现闪退
昨天下午去图书馆抱回来三大本学习python的书籍,准备进修一下python程序设计,正好课本里面有关于图形化程序设计的章节,但是这个我之前没接触过,我这个小白就对照着课本上面一行行的敲代码,但是在运行python文件的时候,对我辛辛苦苦孕育出来的成果一眼都没有见到就闪退了,百度告诉我可能是因为:
1.是我目前pycharm的版本太低啦,需要升级换代了。确实前几天就一直提醒我更新,但是我比较恋旧,这次被迫更新,但是更新之后还是出现闪退情况,所以说明我的错误不是因为版本的问题;
2.缺少必要的事件触发,偶然间看到一个博主是这样解释闪退情况的:
import pygame
from pygame.locals import *
pygame.init()
surface = pygame.display.set_mode((500, 500))
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
总结一下就是我的代码太简单啦,缺少必要的事件触发,如果我把代码嵌套在这个循环里面,我是有幸见到我的成果,并且由于是循环的,看到的好像就是我画完这个长方形后就一直在描边,但是一旦将图形界面关闭,就会提示我出现其他错误,啊这????利用一个事件肯定是有用的,但是我现在还没学到事件,这个解决方法对我而言肯定不是最适合的。
2.turtle 入门
那我就先接着往下学,就在此刻万能的课本告诉我是缺少了一行代码:
turtle.done()
这次我终于顺利见到我的成果了,老母亲露出了幸福的微笑:
import turtle
turtle.write('welcome to python~')
turtle.forward(100)
turtle.right(90)
turtle.color('red')
turtle.forward(50)
turtle.showturtle()
turtle.done()
那我们绘制一个长方形:
import turtle
turtle.write('welcome to python~')
turtle.color('red')
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.showturtle()
turtle.done()
发现规律没有,我们利用循环实现是这样的:
import turtle
n = 3
turtle.write('welcome to python~')
turtle.color('red')
while n >= 0:
turtle.forward(100)
turtle.right(90)
n = n - 1
turtle.showturtle()
turtle.done()
需要注意的是这里和上文还是有些许不同的,最后箭头的方向发生了改变:
如果和上面的效果是一样的那咋办?
3.充分理解penup()和pendown()
首先我们先来总结几个常用的函数:
turtle.penup()
turtle.pendown()
turtle.goto(50, -50)
turtle.color('red')
turtle.circle(50)
turtle.showturtle()
turtle.done()
除此之外还有很多其他的库,这里可以参照《turtle库总结》
在画圆的时候我最开始的代码只用了penup(),我发现图形界面上除了箭头啥玩意也没有,画了个寂寞,细细想想也是有原因的,毕竟抬起画笔就得放下画笔啊~
只抬起画笔的效果:
我以为安排山pendown()就万事大吉,但还是太天真了,注意我pendown()放置的位置,随便放下画笔产生的效果:
那咋办?首先把头歪一歪,脑子里面的水控一控,我们上面说了,openup()和opendown()命令设置抬起或者放下笔借此控制移动笔时是否绘制一条线。
turtle.penup()
turtle.penup()
turtle.goto(50, -50)
turtle.pendown()
效果如下:
也正是因为有了这组函数的存在,我们移动点的时候才没有多余的直线,否则就这样:
只有把画笔放下了,我们绘制圆圈的功能才能继续,否则笔一直处于被占用的状态。(其实单纯绘制圆圈并不需要这样,直接利用circle()函数就可以,这里只是为了便于理解penup()和pendown())
import turtle
turtle.penup()
turtle.goto(50, -50)
turtle.pendown()
turtle.color('red')
turtle.circle(50)
turtle.showturtle()
turtle.done()
4.思考
看完了上面的知识点能告诉我下面这两段代码的不同吗?
turtle.color('red')
turtle.circle(50)
turtle.circle(50)
turtle.color('red')
我们感受一下这两段代码的不同:
代码1:
代码2:
5.利用turtle绘制五环
import turtle
turtle.penup()
turtle.goto(-50, 50)
turtle.pendown()
turtle.color('yellow')
turtle.circle(50)
turtle.penup()
turtle.goto(0, 50)
turtle.pendown()
turtle.color('red')
turtle.circle(50)
turtle.penup()
turtle.goto(-100, 50)
turtle.pendown()
turtle.color('orange')
turtle.circle(50)
turtle.penup()
turtle.goto(50, 50)
turtle.pendown()
turtle.color('green')
turtle.circle(50)
turtle.penup()
turtle.goto(100, 50)
turtle.pendown()
turtle.color('blue')
turtle.circle(50)
turtle.showturtle()
turtle.done()
无论移动的点从天南跑到地北,我们turtle都可以很好地完成绘制任务,运行上述代码你就能很好的感受到这一点~
Original: https://blog.csdn.net/qq_43270444/article/details/115350819
Author: keep_humble
Title: python学习笔记29(利用pycharm在windows下出现闪退以及turtle 入门)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/781400/
转载文章受原作者版权保护。转载请注明原作者出处!