You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  |  | --- | 
					
						
							|  |  |  |  | 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() | 
					
						
							|  |  |  |  | ``` | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | # 总结
 | 
					
						
							|  |  |  |  |   虽然我不喜欢看文档,但是遇到新的东西还是查一下比较稳妥啊! |