1.yield
yield,丫的就是一个迭代器,相当于每次调用一个next()方法,但不会返回一个整体的迭代结果,这样平衡了以下两种情况对运算和内存的影响:
①print大法,比如我们需要一个杨辉三角,用print大法不给return值,导致得到的结果无法复用,这对函数的出现对电脑的好处进行了毫不留情的抹杀。
②return值,还是拿杨辉三角来举例,我们写了一个函数YHtriangle(n)
在这个函数中返回了一个n行的杨辉三角的值,也许是一个list,也可以是二维数组,也可以是tuple...总之我们返回了一个n行的数组
举例,当n=100时,该collection中一共有(1+100)*100/2=5050个元素,可想而知,这对内存的占用是比较大的
所以我们有了yield,每次迭代一次,返回的是一个generator,这样并不立即获得全部的结果,又满足了复用的要求
def yield_demo(n):
for i in range(n):
yield i
print('i:',i)
for i in yield_demo(5):
print('yield i:',i)
print('-'*10)
所以我们yield单次循环,执行到yield即返回genrator
第二次循环从yield下一单步开始执行
2.Turtle
Python Tutorial Introduction:Turtle graphics is a popular way for introducing programming to kids.
那么问题来了,比较流行的向妹子介绍编程的方式是什么呢?
不得不说,Turtle是很强大的一个简单绘制工具,类似于Android中的Canvas和ObjectAnimations
Introduction:
turtle module 是需要导入的
import turtle
再说使用的可行性,turtle基于tkinter,所以在Version 2.5之后就可以使用了
·TurtleScreen类定义了一个绘画的面板,需要一个tkinter.canvas或者ScrolledCanvas类作为参数
·screen()函数返回一个TurtleScreen的子类实例
RawTurtle定义了绘制在面板上的Turtle Objects
RawTurtle源自于Turtle(别名pen)是画笔
Some popular functions:
1.position() or pos()
turtle.position()// Return current location of turtle
想想Turtle是一个机器人或者画笔,它的位置就是笔尖的位置
2.color()
画笔颜色,very clear
3.forward() or fd()
向目前turtle朝向的方向走指定的绝对距离
同样的函数,参见:
back() or bk()
right() or rt()
left() or lt()
3.setX() and setY()
设定turtle的起始坐标,默认为:(0.00,0.00)
4.color(), color(color)
空参的color()返回一个color(画笔颜色)的RGB
color(Red)
color(#666666)
通过default颜色和RGB都可以设定color
color(color1,color2)
color1是画笔颜色
color2是填充颜色
5.pendown(),penup()
Drawing when moving
No drawing when moving
6.done()
start event loop
7....不想写了自己看上面的tutorial吧