python学习笔记29(利用pycharm在windows下出现闪退以及turtle 入门)

python学习笔记29(利用pycharm在windows下出现闪退以及turtle 入门)1 利用 pycharm 在 windows 下出现闪退昨天下午去图书馆抱回来三大本学习 python 的书籍 准备进修一下 python 程序设计 正好课本里面有关于图形化程序设计的章节 但是这个我之前没接触过 我这个小白就对照着课本上面一行行的敲代码 但是在运行 python 文件的时候 对我辛辛苦苦孕育出来的成果一眼都没有见到 我就百度 百度告诉我 1 是我目前 pycharm 的版本太低啦 需要升级换代了 确实前几天就一直提醒我更新 但是我比较恋旧 这次被迫更新 但是更新之后还是出现闪退情况 所以说明我的错误不是因为版

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() 

利用turtle实现图形程序化设计

那我们绘制一个长方形:

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() 

turtle
发现规律没有,我们利用循环实现是这样的:

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

(0)
上一篇 2026年3月26日 下午11:54
下一篇 2026年3月26日 下午11:54


相关推荐

  • mybatis返回对象_存储过程不能返回结果

    mybatis返回对象_存储过程不能返回结果论MyBatis返回结果集_返回实体类还是Map在更多的了解mybatis后发现不单单通过实体类可以直接返回数据,还可以直接返回一个Map结果集(resultType="java.util.Map"),如果是多条数据则返回一个List<Map<String,Object>>结果集。很多人会觉得发现,直接返回一个Map的话太方便了,什么映射什么的全都不用管,只用在sql书…

    2022年10月4日
    5
  • 模型矩阵、视图矩阵、投影矩阵

    模型矩阵、视图矩阵、投影矩阵模型视图投影矩阵的作用,就是将顶点从局部坐标系转化到规范立方体(CanonicalViewVolnme)中。总而言之,模型视图投影矩阵=投影矩阵×视图矩阵×模型矩阵,模型矩阵将顶点从局部坐标系转化到世界坐标系中,视图矩阵将顶点从世界坐标系转化到视图坐标系下,而投影矩阵将顶点从视图坐标系转化到规范立方体中。如下图所示,假设现在要将三维空间中的三角形渲染到屏幕上。三角形的模型文件中,顶点坐标是…

    2022年5月14日
    79
  • pycharm能配置c语言程序,PyCharm 配置 Gitlab进行项目开发

    pycharm能配置c语言程序,PyCharm 配置 Gitlab进行项目开发1 生成 SSHkey 由于 Windows 本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的 所以必须要让 github 仓库认证你 SSHkey 在此之前 必须要生成 SSHkey 本地可以按照 git 服务 百度下 就可以下载 git 安装了之后在 windows 下查看 c 盘 gt 用户 gt 自己的用户名 gt ssh 下是否有 id rsa id rsa pub 文件 如果没有需要手动生成

    2026年3月19日
    2
  • input的属性值_input标签常用的属性

    input的属性值_input标签常用的属性onpaste=”return

    2022年8月14日
    5
  • spss实现中心化处理、标准化处理和归一化处理

    spss实现中心化处理、标准化处理和归一化处理文章目录一 中心化 标准化 归一化简单描述二 中心化处理三 标准化处理四 归一化处理五 参考资料一 中心化 标准化 归一化简单描述意义 数据中心化和标准化在回归分析中是取消由于量纲不同 自身变异或者数值相差较大所引起的误差 原理数据标准化 是指数值减去均值 再除以标准差 数据中心化 是指变量减去它的均值 归一化 把数变为 0 1 之间的小数二 中心化处理 nbsp amp nbs

    2026年3月18日
    2
  • vue 富文本编辑框_基于vue的富文本编辑器

    vue 富文本编辑框_基于vue的富文本编辑器1、下载插件npmiwangeditor–save插件官网地址:https://www.wangeditor.com/2、封装富文本组件<templatelang=”html”><divclass=”editor”><!–<divref=”toolbar”class=”toolbar”></div>–><divref=”editor”class=”text”></div

    2022年10月9日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号