---
layout: post
title: Python学习笔记 - Turtle
tags: [Python, 学习笔记, Turtle, Logo, Tkinter]
--- 

  没想到我终有一天也得学Python了……<!--more-->   
  
# 第一课！Turtle
  我以为我们老师会从Python的基本语法开始教起，不过事实证明我想错了，我们老师打算把我们当做小学生看，然后教 ~~Logo语言~~ 类似Logo语言的Python库，Turtle。   
  Turtle貌似是基于Tkinter的库，Ubuntu上带的Python默认没有装Tkinter，结果我还得自己装一下……   
  老师给我们布置了两个作业，一个是画一个心形，另外是画一个正方形。在开始之前，我也想的这个库就是个Logo语言，也没想着在网上看看这个东西支持什么方法，画正方形也很简单，就是向前向左……执行4遍。很快，我就用循环写出了这个东西：
```python
import turtle
i=0
while i<4 :
	turtle.forward(50)
	turtle.left(90)
	i=i+1
```
  看着这段代码，让我回想起了我的小学时光 ~~（一段不堪回首的往事23333）~~ 既然能画出正方形，那么圆也很简单了，我们可以把圆看成一个无限多边形，那么画圆我们可以这样：
```python
import turtle
i=0
while i<360 :
	turtle.forward(2)
	turtle.left(1)
	i=i+1
```
  画完圆之后我又打算画心形，不过老师布置的是在终端中显示心形，就像这样：
```python
print(""" ** **
*  *  *
 *   *
  * *
   *""")
```
  不过这个感觉没什么意思，我想我可以试试在Turtle里画一个心形。在画之前，当然应该上网查一下Turtle还有什么用法，结果一查以后我就自闭了……画正多边形根本不用一步一步走，有一个叫做circle的方法可以直接实现，比如画正方形可以这样：
```python
import turtle
turtle.right(45)
turtle.circle(100,360,4)
```
  ……这可真是令人难受……不管了，我先画个心形吧，我捡起了我曾经的三角函数的知识，算了一下我要转的角度和长度，最终写出了这样的东西：
```python
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()
``` 
  当然，我不知道心形的定义是什么，所以也不知道心形是怎么组成的，我想象的大概就是两个半圆和一对等腰拼出来的吧，不过最终画出来的心形是真的丑……   
  最后我在网上又查了一下其他人写的，然后继续自闭……   
  其他人的心形：
```python
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()
```

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