Python学习笔记 - Turtle | Mayx的博客
Author: mayx
Description: 没想到我终有一天也得学Python了……
Date: 2019-09-28T00:00:00+08:00

28 September 2019 - 字数统计：1364 - 阅读大约需要5分钟 - Hits: Loading...

# Python学习笔记 - Turtle

by mayx

这是一篇创建于 天前的文章，其中的信息可能已经有所发展或是发生改变。

AI摘要

这篇文章讲述了作者学习Python过程中，接触到Turtle库的经历。Turtle库被老师用于教授类似Logo语言的基础图形操作，包括画心形和正方形。作者最初通过循环和基本指令完成作业，然后发现Turtle其实有更高级的函数如circle可以画正多边形，这让他感到惊讶。他在尝试画心形时，运用三角函数实现了一个自己的版本，虽然结果不太理想。最后，作者意识到在面对新事物时，查阅文档的重要性，因为他看到别人写出的更简洁、美观的心形代码后感到自闭。

- 第一课！Turtle
- 总结

没想到我终有一天也得学Python了……

#
第一课！Turtle

我以为我们老师会从Python的基本语法开始教起，不过事实证明我想错了，我们老师打算把我们当做小学生看，然后教 Logo语言 类似Logo语言的Python库，Turtle。

Turtle貌似是基于Tkinter的库，Ubuntu上带的Python默认没有装Tkinter，结果我还得自己装一下……

老师给我们布置了两个作业，一个是画一个心形，另外是画一个正方形。在开始之前，我也想的这个库就是个Logo语言，也没想着在网上看看这个东西支持什么方法，画正方形也很简单，就是向前向左……执行4遍。很快，我就用循环写出了这个东西：

    import turtle
    i=0
    while i<4 :
    	turtle.forward(50)
    	turtle.left(90)
    	i=i+1

看着这段代码，让我回想起了我的小学时光 （一段不堪回首的往事23333） 既然能画出正方形，那么圆也很简单了，我们可以把圆看成一个无限多边形，那么画圆我们可以这样：

    import turtle
    i=0
    while i<360 :
    	turtle.forward(2)
    	turtle.left(1)
    	i=i+1

画完圆之后我又打算画心形，不过老师布置的是在终端中显示心形，就像这样：

    print(""" ** **
    *  *  *
     *   *
      * *
       *""")

不过这个感觉没什么意思，我想我可以试试在Turtle里画一个心形。在画之前，当然应该上网查一下Turtle还有什么用法，结果一查以后我就自闭了……画正多边形根本不用一步一步走，有一个叫做circle的方法可以直接实现，比如画正方形可以这样：

    import turtle
    turtle.right(45)
    turtle.circle(100,360,4)

……这可真是令人难受……不管了，我先画个心形吧，我捡起了我曾经的三角函数的知识，算了一下我要转的角度和长度，最终写出了这样的东西：

    import turtle
    turtle.color('red','red')
    turtle.filling()
    turtle.begin_fill()
    turtle.left(90)
    turtle.circle(50,180,180)
    turtle.left(30)
    turtle.forward(200)
    turtle.left(120)
    turtle.forward(200)
    turtle.left(30)
    turtle.circle(50,180,180)
    turtle.end_fill()
    input()

当然，我不知道心形的定义是什么，所以也不知道心形是怎么组成的，我想象的大概就是两个半圆和一对等腰拼出来的吧，不过最终画出来的心形是真的丑……

最后我在网上又查了一下其他人写的，然后继续自闭……

其他人的心形：

    from turtle import *
    def curvemove():
        for i in range(200):
            right(1)
            forward(1)
    color('red','pink')
    begin_fill()
    left(140)
    forward(111.65)
    curvemove()
    left(120)
    curvemove()
    forward(111.65)
    end_fill()
    done()

#
总结

虽然我不喜欢看文档，但是遇到新的东西还是查一下比较稳妥啊！

tags: Python - 学习笔记 - Turtle - Logo - Tkinter 查看原始文件

#### 推荐文章

Loading...

上一篇：开学总结
下一篇：Python学习笔记 - 求质数
想问这篇文章
召唤伊斯特瓦尔